- Symbole (informatique)
-
Pour les articles homonymes, voir Symbole.
En programmation informatique, un symbole est une étiquette apposée sur certains éléments du code objet, du bytecode ou d'un arbre syntaxique abstrait, permettant de les identifier sous cette forme transformée du code source.
Un symbole est très proche d'un identificateur du langage source, mais le concept d'identificateur ne recouvre pas totalement le concept de symbole. Le meilleur exemple en est le name mangling (en) effectué par les compilateurs C++ qui consiste à trouver un symbole unique pour un identificateur dont le nom est surchargé.
Le code objet, le bytecode et les arbres syntaxiques abstraits proviennent du processus de compilation, qui consiste à convertir le code source (écrit dans un langage de programmation) en un code exécutable ou bien en une structure plus facilement utilisable par l'ordinateur.
Les symboles enregistrés dépendent du processus de compilation, de l'étape dans le processus de compilation et du langage de programmation utilisé.
Par exemple, en C, les symboles exportés dans du code objet sont les informations sur les structures (nom, nom et type des champs) (déclarées avec le mot cléstruct
), les fonctions globales (nom, nombre et type des paramètres, type de retour) et nom et type des variables globales (non marqués avec le mot cléstatic
, ou bien marqués avec le mot cléextern
) afin qu'ils puissent être utilisés lors de l'étape d'édition des liens. De même, compiler du code C pour le débogage génère les symboles de débogage qui permettent d'identifier la portion du code source correspondant au code binaire exécuté.En Java, tous les symboles sont exportés: nom des classes, nom et type des attributs, méthodes (nombre et type des paramètres, type de retour, nom). Ils servent aussi bien à la résolution des noms lors de l'exécution qu'au débogage. Un échec lors de la résolution des noms va déclencher des exceptions telles que
ClassNotFoundException
,NoSuchMethodError
ou bienNoSuchFieldError
.Implémentation logicielle
Articles connexes
Wikimedia Foundation. 2010.