1.6 A More Detailed Look at Phases of a Compiler
We have already seen that a compiler has the following phases:
- Scanner – Lexical Analysis
- Parser – Syntax Analysis
- Mapper – Semantic Analysis
- Code Generation
- Optimization (spread over several phases)
- Error Checking (spread over several phases)
A compiler generates intermediate files between these phases, to communicate output of one phase as input to the next (see Fig. 1.14).
We now discuss each phase of a compiler in some details.
Fig. 1.14 Phases of a compiler and intermediate outputs
1.6.1 Lexical Analyzer - Scanner
Does lexical analysis, by doing the following: ...