Foundations of Compiler Engineering

Lecturer:  Rainer Leupers

Supervisor:  Gereon Führ,Róbert Bücs (after 26.5.)


Type:  Bachelor Lecture

Credits: 3



Course language: German


The course is tailored to students with interest to Software Engineering in general. To program a PC in a high level language, compilers are an irreplaceable tool, whose understanding builds the basis of every successful implementation of algorithms on a PC. Furthermore, the introduced problems and algorithms provide a wide background for the solution of problems on a PC.

In the domain of embedded systems, compilers have as outstanding role. This area comprises a much broader spectrum of architectures and requires at the same time much higher code quality (performance, code size etc.) than PCs do. Therefore, compilers are the key technology to develop programmable embedded systems, since they close the semantic gap between high level languages and machine languages.


Structure of the course:
Foundations of Compiler EngineeringAdvanced Compiler Engineering
  1. Introduction
  2. Lexical analysis
  3. Syntax analysis
  4. Semantic analysis
  5. Symbol tables
  6. Intermediate representations
  7. Control flow analysis
  8. Code selection
  9. Runtime system memory management
  1. Introduction
  2. Data flow analysis
  3. Intermediate code optimization
  4. Target processors
  5. Register allocation
  6. Scheduling
  7. Code optimization techniques
  8. Retargetable compilers


There will be an oral examination on appointment.



Lecture: ICT cubes, Room 002

Exercise: ICT cubes, Room 002