Foundation of Compiler Construction

This lecture discusses all aspects of the construction of a compiler for a conventional imperative language (such as Pascal) with emphasis on theoretical foundations, the systematic construction of compiler components and, as far as applicable, their generation. Particular topics are:

  • compiling a Pascal-like language to code for a stack-based virtual machine (P-machine)
  • lexical analysis (generation of scanners based on deterministic finite automata from extended regular expressions)
  • different parsing techniques (for context-free grammars) with the focus on LL and LR techniques (including error handling)
  • semantic analysis by attribute grammars
  • introduction to machine-independent optimisation
  • code generation for CISC and RISC architectures (including code selection, register allocation, machine-dependent optimisation and instruction scheduling)

Exercises

Exercises and additional information can be found on the Rubikon platform. If you don't have a Rubikon account yet, you can create one here.

Contact

Prof. Dr. Helmuth Partsch

Alexander Breckel

Schedule

Tuesday 10-12 in O28-1002
Wednesday 10-12 in O28-1002

Further information

course catalogue