One parse tree only a The role of the grammar a distinguish between syntactically legal and illegal programs a But that's not enough: it must also define a parse tree a the parse tree conveys the meaning of the program What if a string can be parsed with multiple parse trees? a we say the grammar is ambiguous a must fix the grammar(the problem is not in the parser) a Note: often a string can be derived in more than one way D ie, with more than one derivation sequence o this does not mean the grammar is ambiguous
TAC Three address code Three-address code (tac) will be the intermediate representation used in our Decaf compiler. It is essentially a generic assembly language that falls in the lower-end of the mid-level IRs. Many compilers use an IR similar to TAC. It is a sequence of instructions, each of which can have at