Character Stream (source code) Front End -> Lexical Analyzer (scanner) (Token stream) -> Syntax Analyzer (parser) (syntax tree) -> Semantic Analyzer (Annotated Syntax tree) Back End -> Intermediate Code Generator (intermediate representation) -> Machine-Independent Code Optimizer (intermediate representation) -> Code Generator (Target-machine Code) ->Machine-Dependent Code Optimizer