4.1 Structure of a Compiler