Variable métasyntaxique
# Variable métasyntaxique

En programmation informatique, une variable métasyntaxique est une variable générique, qui aurait la valeur grammaticale d'un pronom (en ce qu'ils sont la représentation générique de tout une classe d'objet spécifique: il, elle, on... ici "var" pour variable serait l'exemple type). Ces variables sont utilisées dans les exemples pour se concentrer sur le fond plutôt que sur la forme ; leurs noms sont choisis pour être tacitement reconnus comme tel par les administrateurs et les programmeurs. Le mot toto est l'exemple le plus parlant. L'utilisation des variables métasyntaxiques permet de libérer le programmeur de la recherche d'un nom de variable logique adéquat au sujet étudié.

Les variables métasyntaxiques sont appelées ainsi car :

* ce sont des variables dans le métalangage employé pour parler des programmes, etc. (voir également le pseudo-code) ;
* ce sont des variables dont les valeurs sont souvent des variables (comme dans des utilisations telles que « la valeur de f( toto, tata ) est la somme de toto et tata »).

Ce terme fait partie du jargon informatique.

## Exemples

### Toto

La variable métasyntaxique francophone la plus courante est toto. Traditionnellement, la première variable métasyntaxique d'un programme ou d'une fonction s'appellera toto. En réponse à toto, plusieurs suites de variables métasyntaxiques sont utilisées.

On suppose que le toto métasyntaxique désigne originellement la même personne que le Toto récurrent des histoires drôles.

Il est possible de créer autant de variantes de toto qu'il y a de voyelles : tata, titi, tete, tutu, tyty.

### Autres variables utilisées

**Télétypes**

À l'époque des téléscripteurs ASR33 et KSR33, dont le clavier était très incommode, le nom KLIO (ces télétypes n'avaient que des capitales) était souvent utilisé à cause de la proximité de ces quatre touches et de la facilité de prononciation de la variable.

**Langage Fortran**

En Fortran, premier langage scientifique de très large utilisation, la commodité d'utiliser les variables I, J, K... (en fait, toute variable commençant par une lettre de I à N) sans avoir à les déclarer ni à préciser qu'elles étaient entières a contribué à la popularité du langage : c'était elles qu'on utilisait le plus souvent comme indices de boucle. De même, les variables X, Y, Z (en fait, toute variable commençant par une lettre de A à H ou de O à Z) étaient implicitement reconnues comme flottantes. Les noms d'une lettre, ou d'une lettre et d'un chiffre, étaient souvent utilisés pour des usages locaux sans incidence sur le reste du programme (des calculs de sommes ou de produits, par exemple). Pour la même raison il est courant de voir une variable « compteur » nommée KOUNT plutôt que COUNT.

**Personnes**

Pour désigner des personnes, il est courant de parler d'un utilisateur lambda (de la lettre grecque Lambda) pour parler d'un utilisateur quelconque.

### En anglais

* foo : historiquement fu, pour fucked up, ou peut-être forward observation officer, connus pendant la Seconde Guerre mondiale notamment pour les inscriptions laissées derrière les lignes ennemies foo was here ; selon une autre interprétation, il s'agirait de l'acronyme de File Or Object;
* bar, suite de foo : foobar est alors l'acronyme de fucked up beyond all recognition / repair;
* suivant le besoin, les mots foo, bar sont suivis dans l'ordre des mots de la série baz, qux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy, thud;
* fum également, mais plus rare.

### En allemand

L'allemand utilise les mots bla, blub et blabla comme variables métasyntaxiques.

### Autres

* 42, valeur métasyntaxique, réponse à la grande question sur la vie, l'univers et le reste.
* asdf, début de la deuxième ligne d'un clavier QWERTY ou QWERTZ. Par exemple, ASDF est le nom d'un outil de construction de bibliothèques Lisp (Another System Definition Facility).
* Noms servant à désigner « une personne quelconque » : en anglais John Doe et Alan Smithee, en français M. Untel, Mme Unetelle, Dupond, Durand, Dubois, Tartempion, Martin, Michu, en allemand Meier, Müller, Schmidt — le nom fictif « Mustermann » (signifiant approximativement « Lexemple ») est utilisé en allemand dans les cas où il est juridiquement important qu'il n'existe pas de personne réelle portant ce nom (publicités comportant un nom ou une adresse).
* index, i, idx, pour la position du curseur dans une liste de données.
* a, b, c, parce que certains développeurs préfèrent ceci à toto, plop, pwet, ou foo.
* ga, bu, zo, meu : les nombres Shadok.
* En cryptographie, Alice envoie à Bob un message que tente d'intercepter Charlie (ou Estelle, Eve, ou Oscar).
* spam, eggs, parrot : en Python, la tradition est d’utiliser des mots faisant référence à des sketches des Monty Python.
