- Symbol table
In
computer science , a symbol table is adata structure used by a language translator such as acompiler or interpreter, where eachidentifier in a program'ssource code is associated with information relating to its declaration or appearance in the source, such as its type, scope level and sometimes its location.Implementation
A common implementation technique is to use a
hash table implementation. A compiler may use one large symbol table for all symbols or use separated, hierarchical symbol tables for different scopes.Uses
An
object file will contain a symbol table of the identifiers it contains that are externally visible. During the linking of different object files, alinker will use these symbol tables to resolve any unresolved references.A symbol table may only exist during the translation process, or it may be embedded in the output of that process for later exploitation, for example, during an interactive debugging session, or as a resource for formatting a diagnostic report during or after execution of a program.
Example
The symbol table of a small program is listed below. The table itself was generated using the GNU binutils' nm utility. There is one data symbol, holaamigosh (noted by the "D" type), and many functions (self defined as well as from the standard library). The first column is where the symbol is located in the memory, the second is " [http://sourceware.org/binutils/docs-2.17/binutils/nm.html#nm The symbol type] " and the third is the name of the symbol. By passing suitable parameters, the symbol table was made to sort on basis of address.
External links
* [http://sourceware.org/binutils/docs-2.17/binutils/nm.html#nm GNU nm]
* [http://compilers.iecc.com/comparch/article/93-02-114 An old usenet thread]
Wikimedia Foundation. 2010.