Notation hongroise

Un article de Wikipédia, l'encyclopédie libre.

En programmation, la notation hongroise est une convention de nommage qui met en avant le type d'un objet. Par exemple, la variable booléenne danger est préfixée par un b pour indiquer un booléen : bDanger.

On distingue deux notations hongroises :

  • notation hongroise Apps
  • notation hongroise Systems

La première a été inventée par Charles Simonyi, programmeur chez Xerox puis architecte en chef au sein de Microsoft. Cette dernière a adopté ce style d'écriture et l'a transformé pour obtenir la notation Systems. La qualification de "hongroise" vient du pays d'origine de Simonyi.

Sommaire

[modifier] Notation hongroise Apps

C'est l'idée de préfixer le nom des variables de manière a indiquer son utilisation :

  • rwPosition : variable représentant une ligne (row en anglais)
  • usName : variable représentant une chaîne de caractères non sure (unsafe string en anglais)

Cette notation fut utilisée notamment dans le langage BCPL car il n'y avait alors d'autres types que les 'word' machine.

[modifier] Notation hongroise Systems

Cette notation utilisée couramment consiste à faire précéder le nom de la variable d'un préfixe reflétant son type. Ce préfixe est toujours écrit en minuscule puis la première lettre suivante en majuscule. Ce qui donne :

 short nIndex;
 char cChar;
 float* pfVal;

Évidemment, il ne faut pas en abuser sinon elle devient inutile. Ex. :

  • arpszTableau pour un tableau de pointeurs de chaines de caracteres
prefixes        description
i               int (entier)
n               short int (entier court)
l               long int (entier long)
f               float (nombre a virgule flottante)
d               double (float double)
c               char (caractere)
by              byte (caractere non signe)
b               boolean (booleen true/false)
s               string (chaine de caracteres)
w               word (mot = double octet)
dw              double word (double mot)
sz              zero-terminated string
               (chaine de caracteres terminee par un char zero)
str             string object (objet String)
h               handle
pt              point
rgb             rgb triplet
f (fd?)         file (fichier)
v               void
modificateurs   description
u               unsigned (non signe)
p               pointer (pointeur)
a ou ar         array (tableau)
m_              member variable (variable membre)
g_              global variable (variable globale)
s_              static variable (variable statique)

[modifier] References

[modifier] Voir aussi