Les tags d'analyseur servent à identifier comment une solution a été résolue.
Ces tags peuvent ensuite servir à :
Un tag est une string au format suivant : <category>:<thing>.
Nous prenons en charge quatre catégories, du niveau le plus élevé au plus bas :
| Catégorie | Description | Spécificité | Exemples |
|---|---|---|---|
paradigm |
Un paradigme de programmation | Très haut niveau, pas spécifique à un parcours |
imperative, functional
|
technique |
Une technique utilisée | Haut niveau, la plupart ne sont pas spécifiques à un parcours |
recursion, immutability
|
construct |
Une construction du langage | Beaucoup ne sont pas spécifiques à un parcours |
bitwise-and, for-loop
|
uses |
Un usage propre à un langage, comme les types ou les méthodes | Bas niveau, spécifique à un parcours |
DateTime.add_seconds, IEnumerable
|
Quelques exemples de tags :
paradigm:functionaltechnique:recursionconstruct:bitwise-anduses:DateTime.add_secondsBien que chaque parcours soit libre d'associer les tags qu'il veut aux solutions, nous recommandons d'utiliser autant que possible la liste de tags couramment utilisés ci-dessous. Un ensemble de tags commun nous permet de faire des choses sympathiques, comme relier des solutions entre parcours.
| Tag | Description |
|---|---|
paradigm:array |
utilise la programmation par tableaux. |
paradigm:declarative |
utilise la programmation déclarative. |
paradigm:functional |
utilise la programmation fonctionnelle. |
paradigm:generic |
utilise la programmation générique. |
paradigm:imperative |
utilise la programmation impérative. |
paradigm:logic |
utilise la programmation logique. |
paradigm:meta |
utilise la métaprogrammation. |
paradigm:object-oriented |
utilise la programmation orientée objet. |
paradigm:procedural |
utilise la programmation procédurale. |
paradigm:reflective |
utilise la programmation réflective. |
paradigm:stack-oriented |
utilise la programmation orientée pile. |
| Tag | Description |
|---|---|
technique:bit-manipulation |
manipule les bits, généralement à l'aide d'opérateurs bit à bit (par ex. AND, XOR ou décalage à gauche) |
technique:bit-shifting |
décale les bits d'un nombre |
technique:boolean-logic |
exécute de la logique booléenne (AND, OR, NOT) |
technique:composition |
utilise la composition |
technique:concurrency |
exécute du code de façon concurrente |
technique:enumeration |
énumère des valeurs |
technique:error-handling |
gère les erreurs |
technique:exceptions |
intercepte ou lance des exceptions |
technique:function-composition |
utilise la composition de fonctions |
technique:generator |
utilise un générateur |
technique:higher-order-functions |
utilise des fonctions d'ordre supérieur |
technique:immutability |
utilise l'immuabilité |
technique:immutable-collection |
utilise une collection dont le contenu est immuable |
technique:inheritance |
utilise l'héritage |
technique:laziness |
produit des valeurs de façon paresseuse, uniquement quand c'est nécessaire |
technique:locks |
utilise des verrous pour obtenir un accès exclusif à des ressources |
technique:looping |
utilise des boucles |
technique:math |
utilise des mathématiques |
technique:memory-management |
gère la mémoire |
technique:ordering |
ordonne des données |
technique:parallelism |
exécute du code en parallèle |
technique:parser |
analyse des données |
technique:pointers |
utilise des pointeurs |
technique:randomness |
utilise de l'aléatoire |
technique:recursion |
utilise la récursivité |
technique:regular-expression |
utilise des expressions régulières |
technique:short-circuiting |
utilise l'évaluation en court-circuit pour éviter des évaluations inutiles |
technique:sorted-collection |
utilise une collection dont les éléments sont toujours triés |
technique:sorting |
trie des données |
technique:tail-call-optimization |
utilise l'optimisation des appels terminaux pour une récursivité efficace |
technique:type-conversion |
convertit des valeurs d'un type vers un autre |
technique:unsafe |
utilise du code non sûr (par exemple de l'arithmétique de pointeurs) |
| Tag | Description |
|---|---|
construct:abstract-class |
définit une classe abstraite |
construct:abstract-method |
définit une méthode abstraite |
construct:add-assignment |
combine l'addition avec l'affectation |
construct:add |
utilise l'addition |
construct:array |
utilise ou déclare un tableau |
construct:assignment |
affecte ou lie une valeur à une variable ou à un nom |
construct:async-await |
utilise async/await
|
construct:attribute |
annote un membre avec des métadonnées |
construct:auto-implemented-property |
définit une propriété à implémentation automatique |
construct:big-integer |
utilise un grand entier |
construct:binary-number |
définit un nombre en notation binaire |
construct:bit-array |
utilise ou déclare un tableau de bits |
construct:bitwise-and-assignment |
combine un AND bit à bit avec l'affectation |
construct:bitwise-and |
exécute un AND bit à bit |
construct:bitwise-left-shift-assignment |
combine un décalage bit à bit à gauche avec l'affectation |
construct:bitwise-left-shift |
exécute un décalage bit à bit à gauche |
construct:bitwise-not |
exécute un NOT bit à bit |
construct:bitwise-or-assignment |
combine un OR bit à bit avec l'affectation |
construct:bitwise-or |
exécute un OR bit à bit |
construct:bitwise-right-shift-assignment |
combine un décalage bit à bit à droite avec l'affectation |
construct:bitwise-right-shift |
exécute un décalage bit à bit à droite |
construct:bitwise-xor-assignment |
combine un XOR bit à bit avec l'affectation |
construct:bitwise-xor |
exécute un XOR bit à bit |
construct:block |
définit un bloc contenant une liste d'instructions |
construct:boolean |
définit ou utilise une valeur booléenne |
construct:boxing |
utilise le boxing |
construct:break |
sort d'une boucle |
construct:byte |
utilise un entier non signé de 8 bits |
construct:catch |
intercepte une exception |
construct:char |
utilise un caractère |
construct:checked-arithmetic |
utilise de l'arithmétique vérifiée (qui protège contre les débordements) |
construct:class |
définit une classe |
construct:collection-initializer |
définit les valeurs d'une collection via un initialiseur |
construct:command |
définit une commande |
construct:comment |
définit un commentaire |
construct:comparison-chaining |
enchaîne des appels de comparaison |
construct:comparison |
compare deux valeurs selon leur ordre relatif |
construct:complex-number |
utilise un nombre complexe |
construct:computed-string |
définit une string calculée |
construct:concatenation |
concatène des valeurs |
construct:conditional-access |
accède à une méthode de façon conditionnelle |
construct:conditional-operator |
utilise un opérateur conditionnel ternaire |
construct:conditional |
exécute du code de façon conditionnelle |
construct:constant |
définit une valeur constante (immuable) |
construct:constructor |
définit un constructeur |
construct:continue |
passe à l'itération suivante d'une boucle |
construct:conversion-operator |
définit un opérateur de conversion |
construct:copy |
copie une valeur |
construct:coroutine |
définit ou utilise une coroutine |
construct:custom-attribute |
définit un attribut personnalisé |
construct:date-time |
utilise une valeur qui représente une combinaison de date et d'heure |
construct:date |
utilise une valeur qui représente une date (sans heure) |
construct:decimal |
utilise un nombre à virgule flottante de 128 bits |
construct:decrement |
décrémente une valeur |
construct:default-interface-implementation |
définit une implémentation par défaut dans une interface |
construct:default |
définit une valeur par défaut (par ex. pour un paramètre) |
construct:destructuring |
déstructure une valeur en ses parties |
construct:dictionary-comprehension |
crée un dictionnaire via une compréhension |
construct:dictionary |
utilise ou définit un dictionnaire ou une map |
construct:discard |
utilise la valeur spéciale discard |
construct:divide-assignment |
combine la division avec l'affectation |
construct:divide |
utilise la division |
construct:do-while-loop |
utilise une boucle do-while
|
construct:double |
utilise un nombre à virgule flottante de 64 bits |
construct:else |
définit une branche else |
construct:enum |
définit ou utilise un enum (énumération de valeurs) |
construct:equality |
compare l'égalité de deux valeurs |
construct:error |
définit ou utilise une erreur |
construct:event |
définit ou utilise des événements |
construct:exception |
définit ou utilise des exceptions |
construct:explicit-conversion |
convertit explicitement d'un type vers un autre |
construct:explicit-import |
importe uniquement certaines fonctionnalités |
construct:exponentiation |
calcule la puissance d'une valeur |
construct:expression-bodied-member |
définit un membre à corps d'expression |
construct:extension-method |
définit une méthode d'extension |
construct:field-access |
accède à un champ |
construct:field |
définit un champ |
construct:finally |
utilise finally pour garantir qu'un bloc de code donné s'exécute toujours |
construct:flags-enum |
définit ou utilise un enum de drapeaux |
construct:float |
utilise un nombre à virgule flottante de 32 bits |
construct:floating-point-number |
utilise un nombre à virgule flottante |
construct:for-loop |
utilise une boucle for
|
construct:foreach |
utilise une boucle foreach
|
construct:function-overloading |
utilise la surcharge de fonctions |
construct:function |
définit une fonction |
construct:generator |
définit une fonction ou une méthode génératrice |
construct:generic-function |
définit une fonction paramétrée par un ou plusieurs types |
construct:generic-method |
définit une méthode paramétrée par un ou plusieurs types |
construct:generic-type |
définit un type paramétré par un ou plusieurs types |
construct:getter |
définit un accesseur |
construct:global-function |
définit une fonction disponible globalement |
construct:global-variable |
définit une variable disponible globalement |
construct:header |
définit un fichier d'en-tête |
construct:hexadecimal-number |
définit un nombre en notation hexadécimale |
construct:if |
utilise une instruction if
|
construct:implicit-conversion |
convertit implicitement d'un type vers un autre |
construct:implicit-loop |
parcourt implicitement une collection de valeurs |
construct:implicit-return |
renvoie une valeur de façon implicite |
construct:import |
importe des fonctionnalités implémentées ailleurs (par ex. depuis un espace de noms ou un module) |
construct:increment |
incrémente une valeur |
construct:index-operator |
définit un opérateur pour indexer un objet |
construct:indexer |
définit ou utilise un indexeur |
construct:indexing |
accède à une valeur par son indice |
construct:inequality |
compare l'inégalité de deux valeurs |
construct:infix-operator |
définit un opérateur infixe |
construct:initialization |
initialise un objet après sa création |
construct:initializer-list |
initialise les valeurs des champs d'un objet |
construct:initializer |
initialise un objet |
construct:instance |
crée ou utilise une instance d'un type |
construct:instantiation |
crée une instance d'un type |
construct:int |
utilise un entier signé de 32 bits |
construct:integral-number |
utilise un nombre entier |
construct:interface |
définit une interface |
construct:invocation |
appelle une méthode ou une fonction |
construct:iterator |
définit une fonction ou une méthode sur laquelle on peut itérer |
construct:jagged-array |
utilise un tableau en escalier (un tableau de tableaux) |
construct:lambda |
définit une lambda (aussi appelée « fonction anonyme ») |
construct:linked-list |
utilise une liste chaînée |
construct:linq |
utilise LINQ |
construct:list-comprehension |
construit une liste via une compréhension |
construct:list |
utilise une liste |
construct:local-function |
définit une fonction locale |
construct:local-variable |
définit une variable locale |
construct:lock |
utilise un verrou |
construct:logical-and |
exécute un AND logique |
construct:logical-not |
exécute un NOT logique |
construct:logical-or |
exécute un OR logique |
construct:long |
utilise un entier signé de 64 bits |
construct:loop |
définit une boucle |
construct:macro |
définit une macro |
construct:membership-test |
teste l'appartenance d'une valeur à une autre valeur |
construct:metatable |
définit une métatable |
construct:method-chaining |
enchaîne plusieurs appels de méthode |
construct:method-overloading |
utilise la surcharge de méthodes |
construct:method-override |
définit une méthode redéfinie |
construct:method |
définit une méthode |
construct:module |
définit un module (regroupement de code) |
construct:modulo-assignment |
combine le reste de la division avec l'affectation |
construct:modulo |
utilise le reste de la division |
construct:multi-dimensional-array |
utilise un tableau à plusieurs dimensions |
construct:multiline-string |
définit une string sur plusieurs lignes |
construct:multiple-assignment |
affecte plusieurs valeurs en une seule fois |
construct:multiple-dispatch |
utilise la répartition multiple |
construct:multiply-assignment |
combine la multiplication avec l'affectation |
construct:multiply |
utilise la multiplication |
construct:named-argument |
passe un argument par son nom |
construct:namespace |
définit un espace de noms (regroupement de code) |
construct:nested-function |
définit une fonction imbriquée |
construct:nested-type |
définit un type imbriqué |
construct:nesting |
utilise l'imbrication |
construct:nint |
utilise un entier signé propre à la plateforme (32 ou 64 bits) |
construct:nuint |
utilise un entier non signé propre à la plateforme (32 ou 64 bits) |
construct:null |
utilise null ou nil pour représenter l'absence de valeur |
construct:nullability |
gère les valeurs null ou nil |
construct:number |
utilise un nombre (signé ou non signé) |
construct:object-initializer |
définit les valeurs d'un objet via un initialiseur |
construct:octal-number |
définit un nombre en notation octale |
construct:operator-overloading |
utilise la surcharge d'opérateurs |
construct:option |
utilise un type option |
construct:optional-parameter |
définit un paramètre facultatif |
construct:overflow |
utilise un débordement arithmétique |
construct:parameter |
définit un paramètre |
construct:parenthesized-expression |
entoure une expression de parenthèses |
construct:pattern-matching |
utilise le filtrage par motifs |
construct:pattern |
définit un motif utilisé dans le filtrage par motifs |
construct:pipe-backward |
utilise un pipe inversé |
construct:pipe-forward |
utilise un pipe |
construct:pipeline |
définit un pipeline |
construct:point-free |
définit des fonctions sans les arguments sur lesquels elles opèrent |
construct:pointer |
utilise un pointeur |
construct:postfix-decrement |
décrémente une valeur en notation postfixée |
construct:postfix-increment |
incrémente une valeur en notation postfixée |
construct:prefix-decrement |
décrémente une valeur en notation préfixée |
construct:prefix-increment |
incrémente une valeur en notation préfixée |
construct:print |
affiche une valeur dans la console |
construct:property |
définit une propriété (accesseur et mutateur) |
construct:query-expression |
interroge des données via une expression |
construct:queue |
utilise une file |
construct:range |
définit un intervalle |
construct:read-only |
définit une valeur en lecture seule |
construct:record |
définit un record |
construct:regular-expression |
définit ou utilise une expression régulière |
construct:result |
utilise un type résultat |
construct:return-type |
définit le type de retour d'une fonction ou d'une méthode |
construct:return |
renvoie depuis une fonction ou une méthode |
construct:sbyte |
utilise un entier signé de 8 bits |
construct:scientific-notation-number |
définit un nombre en notation scientifique |
construct:set-comprehension |
crée un ensemble via une compréhension |
construct:set |
utilise un ensemble |
construct:setter |
définit un mutateur |
construct:short |
utilise un entier signé de 16 bits |
construct:slice |
utilise une tranche |
construct:stack |
utilise une pile |
construct:static-field |
définit un champ statique |
construct:static-method |
définit une méthode statique |
construct:string-formatting |
construit une string à partir d'une chaîne de format |
construct:string-interpolation |
définit une string interpolée |
construct:string |
définit une string |
construct:struct |
définit une structure |
construct:subtract-assignment |
combine la soustraction avec l'affectation |
construct:subtract |
utilise la soustraction |
construct:sum-type |
définit un type somme |
construct:switch |
utilise un switch
|
construct:table |
définit une table |
construct:template-alias |
définit un alias pour un gabarit |
construct:template-parameter |
définit un paramètre de gabarit |
construct:template |
définit un gabarit |
construct:throw |
lance une exception |
construct:time |
utilise un objet qui représente l'heure |
construct:try |
gère une exception explicitement |
construct:tuple |
utilise un tuple |
construct:type-alias |
définit un alias pour un type |
construct:type-conversion |
convertit (transtype) une valeur vers un autre type |
construct:type-extension |
étend un type avec de nouvelles fonctionnalités |
construct:type-inference |
déduit automatiquement le type d'une valeur ou d'une fonction |
construct:type-test |
teste si une valeur a un type donné |
construct:uint |
utilise un entier non signé de 32 bits |
construct:ulong |
utilise un entier non signé de 64 bits |
construct:unary-minus |
utilise un moins unaire |
construct:unary-plus |
utilise un plus unaire |
construct:underscored-number |
utilise un nombre dont les tirets bas servent de séparateurs de chiffres |
construct:union-type |
définit un type union |
construct:user-defined-exception |
définit une exception personnalisée, définie par l'utilisateur |
construct:ushort |
utilise un entier non signé de 16 bits |
construct:using-directive |
utilise du code provenant d'un autre fichier |
construct:using-statement |
affecte et libère une valeur via l'instruction using |
construct:varargs |
définit un paramètre qui accepte zéro ou plusieurs valeurs |
construct:variable |
déclare une variable |
construct:vector |
utilise un vecteur |
construct:verbatim-string |
utilise une string verbatim (sans séquences d'échappement) |
construct:virtual-method |
définit une méthode virtuelle |
construct:visibility-modifiers |
spécifie la visibilité d'une construction (par ex. une méthode ou une classe) |
construct:while-loop |
utilise une boucle while
|
construct:yield |
produit une valeur dans une boucle de façon paresseuse |
Comme cette catégorie est propre à chaque langage, il n'y a pas de tags couramment utilisés ici.