WikiDer > Symboltabelle
EIN Symboltabelle ist in der Informatik ein Datenstruktur die hauptsächlich verwendet wird in Compiler und Dolmetscher.
Eine Symboltabelle ist mit jedem verknüpft Kennung in dem Quellcode eine Sammlung von Informationen über diese Kennung, wie z Datentyp des Variable angezeigt durch den Bezeichner und die Stelle im Speicher, an der der Inhalt der Variablen zu finden ist.
Das Implementierung von Symboltabellen wird durch zwei Faktoren erschwert:
- Die mit einem bestimmten Identifikator verbundenen Informationen unterscheiden sich für die verschiedenen Dinge, die ein Identifikator anzeigen kann. Beispielsweise werden für eine primitive Variable ihr Typ und ihre Position im Speicher in der Symboltabelle gespeichert, für eine Funktion die Anzahl der formalen Parameter und deren Typen plus der Rückgabetyp und für a Klasse die Methoden und Attribute, die dieser Klasse zugeordnet sind.
- Jeder Bezeichner hat a erreichen. Einige Variablen, Funktionen oder benutzerdefinierte Typen sind nur in einem Teil des Programms sichtbar. Darüber hinaus kann sich dieselbe Kennung an verschiedenen Stellen im Code auf verschiedene Dinge beziehen. Zum Beispiel: in einer Funktion mit einer lokalen Variablen ein verweist auf die Kennung ein auf eine andere Variable als außerhalb dieser Funktion, wenn es auch eine globale Variable gibt ein ist.
Debuggen
Das in von der Compiler Die zusammengesetzte Symboltabelle befindet sich normalerweise in der Objektcode Gerettet. Diese Tabelle zusammen mit Informationen zu Dateien und Zeilennummern, in denen das Symbol definiert ist (die Debug-Informationen), dient als Grundlage für sogenannte symbolisch oder Debugger auf Quellebene, die im Gegensatz zu klassischen Debuggern nicht nur eine Speicheradresse, sondern auch den Namen der Variablen im Programmtext anzeigen. Da es eine direkte Verknüpfung zwischen einer (einer Reihe von) Speicheradresse(n) und dem symbolischen Namen ermöglicht, vereinfacht es das Auffinden von Fehlern in der Quellcode (das Quelle).
| Compiler | ||||||
|---|---|---|---|---|---|---|
|