This course introduces the major ideas used today in the implementation of programming language compilers. You will learn how a program written in a high-level language designed for humans translates into a program written in low-level assembly.
Students will be able to:
Become familiar with compiler analyses, intermediate representations and code generation;
Improve programming ability;
Implement compiler analysis, transformation and code generation approaches based on real compiler infrastructures;
Study recent advances in compiler design.
introduces the concepts used today in the design of modern compilers.
You will learn how a program written in a high-level language designed
for humans translates into a program written in low-level assembly,
and how an optimizing compiler can improve the quality of the
generated code. The contents includes both theoretical aspects and
- Lexical analysis
- Syntax analysis
- Semantic analysis
- Intermediate representations
- Code generation and runtime
- Dataflow analysis
- Static single assignment form
- Instruction scheduling, register allocation
- Compilation for embedded systems
- Implementing a lexer with FLEX
- Implementing a parser with BISON
- Implementing analysis and optimization passes for C programs with the LLVM compiler
Course will be managed through ISIS  and registration through QISPOS.
By E-Mail: firstname.lastname@example.org 
Knowledge of C programming and an introductory course on computer architecture is recommended.
- Free elective course - 6 ECT.
- Course intended for Technische Informatik and Informatik students.
- 2VL+2UE: Two hours per week lecture and two hours per week practical.
- Practical starts second week of the semester.