Was ist eine Symboltabelle?
Eine Symboltabelle wird von Computersystemen verwendet, um Informationen zu zentralisieren und die Größe von Programmen zu verringern. Diese Tabellen funktionieren wie der Schlüssel zu einem Geheimcode. Ein Symbol oder eine Zeichenfolge wird neben einer anderen, im Allgemeinen viel größeren Information platziert. Wenn ein Programm ein Symbol liest, das der Symboltabelle zugeordnet ist, verweist das Programm auf die Tabelle und übernimmt die Informationen anstelle des Symbols. Dies ermöglicht, dass große Informationen oder häufig wiederholte Strukturen nur einen Eintrag haben, wodurch die Gesamtgröße des Programms verringert wird.
Das Konzept hinter einer Symboltabelle ist sehr einfach. Eine einzelne Tabelle enthält eine Vielzahl von Informationen, die von einem Programm verwendet werden. Jede Tabelle hat einen eigenen Eintrag und ein eindeutiges zugehöriges Symbol. Diese Informationen können Code-Zeichenfolgen, Debugging-Informationen, Speicherorte und buchstäblich alles sein, was das Programm verwenden kann, um zu funktionieren. Anstatt diese Informationen in das Programm aufzunehmen, verweist der Code einfach mit seinem eindeutigen Symbol auf die Tabelle.
Es gibt zwei Stellen, an denen eine Symboltabelle häufig vorkommt: beim Kompilieren von Code in Programme und beim Verknüpfen von Bibliotheken, die von mehreren Programmen verwendet werden. Bei der Verwendung in Programmen wird die tatsächliche Tabelle normalerweise zum Zeitpunkt der Kompilierung in das Programm aufgenommen oder in eine gemeinsam genutzte Bibliothek umgewandelt. Es ist ungewöhnlich, die Liste getrennt zu lassen, da eine Änderung der Liste extreme Folgen für das Programm haben kann. Auch wenn die Tabelle in diesem Prozess transformiert wird, handelt es sich immer noch um dieselbe grundlegende Sache, sie wird nur zusammen mit anderem Code eingeschlossen.
Wenn eine Symboltabelle in einer Verknüpfungsbibliothek verwendet wird, erweitern sich die Möglichkeiten zu ihrer Funktionsweise drastisch. Eine Verknüpfungsbibliothek ist ein Satz von Informationen, von denen angenommen wird, dass sie einem Programm jederzeit zur Verfügung stehen. Diese Bibliotheken werden häufig von einem Betriebssystem oder einer Familie verwandter Programme gemeinsam genutzt, die alle von derselben Firma erstellt wurden.
Jede dieser Bibliotheken enthält Informationen zu bestimmten Themen. Eine Bibliothek kann eine breite Palette von Programmen zum Zeichnen der Fenstergrenzen der Benutzeroberfläche des Betriebssystems enthalten, während eine andere Informationen darüber enthalten kann, wo eine bestimmte Gruppe von Programmen Informationen im Speicher speichert. Da eine Verknüpfungsbibliothek eine solche zufällige Zusammenstellung von Informationen enthalten kann, sind häufig Symboltabellen enthalten.
Durch die Einbindung einer Symboltabelle in einen Linker ist es möglich, die Symbole über eine Programmreihe hinweg zu teilen. Auf diese Weise können mehrere Programme jederzeit auf dieselben Daten zugreifen. Wenn für eine große Anzahl von Programmen alle dieselben Informationen erforderlich sind, wird die Größe der gesamten Programmgruppe erheblich verringert, einschließlich der Informationen in einer Symboltabelle in einer Bibliothek.