Skip to main content

Qu'est-ce qu'une table de symboles?

Une table de symboles est utilisée par les systèmes informatiques comme moyen de centraliser les informations et de réduire la taille des programmes.Ces tableaux fonctionnent comme la clé d'un code secret;Un symbole ou une chaîne est placé à côté d'une autre, généralement beaucoup plus grande, des informations.Lorsqu'un programme lit un symbole associé à la table de symboles, le programme fait référence à la table et prend les informations plutôt que le symbole.Cela permet à de grandes informations ou à des structures couramment répétées d'avoir une seule entrée, réduisant 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 pourraient ê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.

Il y a deux endroits où une table de symbole est courante: dans la compilation du code dans les programmes et dans la liaison des bibliothèques utilisées par plusieurs programmes.Lorsqu'il est utilisé dans les programmes, le tableau réel est généralement absorbé par le programme ou transformé en 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 liaison, les possibilités de savoir comment elle peut fonctionner s'étend considérablement.Une bibliothèque de liaison est un ensemble d'informations qui sont supposées à tout moment pour un programme.Ces bibliothèques sont souvent partagées par un système d'exploitation ou une famille de programmes connexes qui sont tous fabriqué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 dessiner les bordures de la fenêtre de l'interface utilisateur du système d'exploitation tandis qu'une autre peut contenir des informations sur le lieu de mémoire d'un groupe spécifique de programmes.Étant donné qu'une bibliothèque de liaison peut contenir un tel assortiment aléatoire d'informations, les tables de symboles sont souvent incluses avec eux.

En incorporant une table de symboles dans un linker, 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 nécessitent tous les mêmes informations, y compris dans un tableau de symboles d'une bibliothèque réduit considérablement la taille du groupe de programmes total.