The document discusses intermediate code generation in compilers. It describes intermediate code as the output of the parser and input to the code generator. Three common types of intermediate representations are discussed: syntax trees, postfix notation, and three address code. Three address code represents statements in the form of X=Y op Z and is described as a linearized representation of a syntax tree that is easy to manipulate and optimize. The document provides examples of three address code generated from syntax trees and DAGs.