This note collects resources on the general compilation pipeline. In other words, how does a compiler work?
See also
This draws heavily from the Stanford CS 143: Compilers course resources.
From here:
The stages of compilation
- lexing
- parsing
- semantic analysis
- ir generation (see Three address code (TAC))
- program optimization (ir optimization, output assembly/machine code optimization)
- register allocation & code generation
Three address code (TAC)
TAC is an lower-level IR. Generic assembly language in lower end of mid-level IRs.
_t1 = b * c;
_t2 = b * d;
_t3 = _t1 + _t2;
a = _t3;