This document describes the intermediate representation that your
compilers will use for Co programs. The scheme we will use is
based on the idea of syntax trees. Therefore, much of this document
will be concerned with the structure of trees for Co programs.
Syntax trees typically include some pointers into the compiler's
symbol table. Accordingly, this document also includes a partial
specification of a symbol table organization for a Co compiler. In
fact, since the syntax trees depend upon the symbol table, we will
begin with a summary of the organization of the symbol table.