Scanning

Parsing

Semantic Analysis

Optimization

Code Generation

Tradeoffs

Other System Software

Portability

Benchmarks

Validations

12.2.6 Tradeoffs

Portability, including retargetability and rehostability, may be traded off for simplicity and efficiency. Aggressive optimization may be traded off for compiler stability and performance of the compiler itself.

Small and fast compilers are required for microcomputers. They require fewer functional interfaces, fewer passes and much mixing of phases, and an avoidance of data transformations, that is, a tighter coupling. The tradeoff is a software package that is more difficult to maintain.