The document describes the analysis-synthesis model of compilation which has two parts: analysis breaks down the source program into pieces and creates an intermediate representation, and synthesis constructs the target program from the intermediate representation. During analysis, the operations of the source program are determined and recorded in a syntax tree where each node represents an operation and children are the arguments.