Qu'est-ce qu'une table de symboles?
Les ordinateurs utilisent les tableaux de symboles pour centraliser les informations et réduire la taille des programmes. Ces tables fonctionnent comme la clé d'un code secret. un symbole ou une chaîne est placé à côté d'un autre élément d'information, généralement beaucoup plus volumineux. Lorsqu'un programme lit un symbole associé à la table de symboles, il fait référence à la table et utilise les informations plutôt que le symbole. Cela permet aux informations volumineuses ou aux structures fréquemment répétées de n’avoir qu’une entrée, ce qui réduit la taille globale du programme.
Le concept derrière une table de symboles est très simple. Une seule table contient un large éventail d'informations utilisées par un programme, chacune avec sa propre entrée et son symbole associé unique. Ces informations peuvent être des chaînes de code, des informations de débogage, des emplacements de mémoire, littéralement tout ce que le programme pourrait utiliser pour fonctionner. Plutôt que d'inclure ces informations dans le programme, le code fait simplement référence à la table en utilisant son symbole unique.
Une table de symboles est commune à deux endroits: lors de la compilation de code dans des programmes et de la liaison de bibliothèques utilisées par plusieurs programmes. Lorsqu'elle est utilisée dans des programmes, la table réelle est généralement absorbée par le programme ou transformée en une bibliothèque partagée au moment de la compilation. Il est inhabituel de laisser la liste séparée, car la modification de la liste pourrait avoir des conséquences extrêmes pour le programme. Même lorsque la table est transformée dans ce processus, c'est toujours la même chose de base, elle est simplement incluse avec un autre code.
Lorsqu'une table de symboles est utilisée dans une bibliothèque de liens, les possibilités d'utilisation de cette table sont considérablement étendues. Une bibliothèque de liaison est un ensemble d'informations supposé être disponible pour un programme à tout moment. Ces bibliothèques sont souvent partagées par un système d'exploitation ou une famille de programmes connexes, tous créés par la même entreprise.
Chacune de ces bibliothèques est remplie d'informations sur certains sujets. Une bibliothèque peut contenir un large éventail de programmes pour tracer les bordures de fenêtre de l'interface utilisateur du système d'exploitation, tandis qu'une autre peut contenir des informations sur l'emplacement de stockage en mémoire d'un groupe de programmes spécifique. Puisqu'une bibliothèque de liens peut contenir un tel assortiment d'informations aléatoire, des tables de symboles sont souvent incluses avec celles-ci.
En incorporant une table de symboles dans un éditeur de liens, il est possible de partager les symboles dans une série de programmes. Cela permet à plusieurs programmes d'accéder aux mêmes données à tout moment. Si un grand nombre de programmes requiert tous les mêmes informations, les inclure dans une table de symboles d'une bibliothèque réduit considérablement la taille du groupe de programmes total.