The term symbol table is used in connection with compiler construction. A symbol table is a data structure used to manage information about the various constructs of the source language. The information is obtained by the compiler
analysis phases and used by the synthesis phases to generate the target code. During lexical analysis, the string, or lexeme, that makes up an identifier is recorded in a symbol table entry. Later compiler phases may add information to this entry concerning the type of identifier, its use (e.g., as a procedure, variable, or tag), and its memory address. The code generation phase will then use this information to generate correct code for accessing and modifying these variables.