In a compiler, a symbol table is a data structure constructed with the abstract syntax tree. It provides later phases in the compiler (semantic analysis, IR generation) information about a program’s symbols. This information includes: type, size, alignment, etc. of variables and functions.