(*)Students are able to
- understand the concepts of separate compilation and type checking across compilation units (K2)
- implement a code generator producing IA32 machine code for a simple programming language (K2, K6)
- understand and implement intermediate program representations such as abstract syntax trees, control flow graphs and instructions in static single assignment form (K2, K6)
- implement compiler optimizations such as copy propagation and common subexpression elimination (K2, K6)
- implement a graph-coloring register allocator (K2, K6)
|
(*)- Separate compilation
- Code generation for register machines (IA32)
- Intermediate program representations (abstract syntax tree, control flow graph, dominator tree, static single assignment form)
- Common compiler optimizations (common subexpression elimination, inlining, loop unrolling, loop-invariant code motion, ...)
- Register allocation
|