Scanning

Parsing

Semantic Analysis

Optimization

Code Generation

Tradeoffs

Other System Software

Portability

Benchmarks

Validations

12.2.4 Optimization

Some languages, such as FORTRAN, really require optimization to produce even moderately efficient code. For other languages, it may be a toss-up, and something to be added during the improvements phase of the compiler life cycle. The other factor which promotes the need for, and newer techniques for, optimization is the newer machine architectures (e.g., RISC machines). Techniques for optimizing for such machines will be discussed in Module 13.

Aggressive optimizations are also a major source of bugs in a compiler.