The phases are collected into a front end and back end
Front end
- The front end consist of those phases, that depends primarily on source language and largely independent of the target machine
- Front end includes lexical analysis, syntax analysis, semantic analysis, intermediate code generation and creation of symbol table
- Certain amount of code optimization can be done by front end
Back end
- The back end consists of those phases, that depends on target machine and do not depend on source program
- Back end includes code optimization and code generation phase with necessary error handling and symbol table operation