Intermediate Representations: Syntax Trees, DAGs and Three-Address Code
Between the parser and the code generator, a compiler represents the program in one or more intermediate representations (IRs). A high-level IR such as a syntax tree keeps the source structure and suits type checking.