Compiler Construction


Degree Program Module
Bachelor Informatik INF-B-510, INF-B-520
Master Informatik


Medieninformatik INF-E-3, INF-BI-4, INF-BI-5
Distributed Systems Engineering INF-DSE-20-E-ADSE, NF-DSE-20-E-BDSE (*)
Computational Science and Engineering MA-CSE-17(*)
Diplom Informatik INF-BAS3, INF-BAS4, INF-VERT3, INF-VERT4, INF-VERT5,
Informationssystemtechnik INF-BAS3, INF-BAS4, INF-VERT3, INF-VERT4, INF-VERT5,
 IST-05-PF-HS, INF-B-275
  Lehrexport INF-LE-EUI, INF-LE-WW

(*) Offered in English in winter semester

Configuration: 2 V / 0 Ü / 0 P

Lecturer: Prof. Jeronimo Castrillon

Description: This is a general course on compiler construction suitable not only for students of the IST program, but also for EE & CS students that would like to understand how a high level language is step-wise translated into optimized machine code. This lecture is ideal to put theoretical concepts of computer science into practice, to learn about the impact of processor architecture on software performance and to learn/refresh basic and advance optimization techniques.

The lecture covers the following topics:

  • Lexical analysis
  • Syntax analysis
  • Semantic analysis
  • Intermediate representation
  • Control & dataflow analysis
  • Compiler optimizations
  • Target architectures
  • Code selection
  • Scheduling
  • Register allocation

Language: German (English in winter semester)

Schedule:  In the winter semester 2021, the lecture will be held on Tuesdays, 13:00-14:30 in room VMB/OE02/U (starting on Oct 12).

Lectures: 12.10., 19.10., 26.10., 2.11., 9.11., 16.11., 23.11., 30.11., 7.12., 14.12., 21.12., 11.1., 18.1., 25.1., 1.2.

Lecture material: The slides of the lectures can be downloaded from here


Seminar Compiler Construction


Degree Program Module
Bachelor Informatik INF-B-510, INF-B-520, INF-B-610
Master Informatik INF-BAS3,  INF-BAS4, INF-VERT3, INF-VERT4, INF-VERT5,
Medieninformatik INF-E-3, INF-BI-4, INF-BI-5
Diplom Informatik INF-BAS3, INF-BAS4, INF-VERT3, INF-VERT4, INF-VERT5,
Informationssystemtechnik INF-BAS3, INF-BAS4, INF-VERT3, INF-VERT4, INF-VERT5,
 IST-05-PF-HS, INF-B-275

configuration:  0 V / 2 Ü / 0 P

Lecturer:  Lars Schütze

Description: This course supplements the Compiler Construction lecture (see details above). It is intended to give a deeper understanding of compiler techniques and algorithms. The course includes theoretical and practical tasks. For the practical work, students should have basic knowledge of Python and C/C++.

Since the seminar contents are aligned with the Compiler Construction lecture, it is recommended that both the seminar and the lecture are attended simultaneously.

Language: English

Schedule: In the Winter semester 2021/2022, the seminar will be held on Thursdays, 9:20-10:50 in room APB/E009/U.

Seminars: 14.10., 21.10., 28.10., 4.11., 11.11., 18.11., 25.11., 2.12., 9.12., 16.12., 6.1., 13.1., 20.1., 27.1., 3.2.

Einführung in die Technische Informatik


Degree Program Module
Master Informatik INF-BAS5

configuration:  5 weeks each with 4 DS

Lecturer: Prof. Jeronimo Castrillon

Instructors:  Andrés GoensRobert Khasanov (for practical sessions)

Description: This course gives an introduction to different topics on computer engineering. It is taught by several professors of the institute for "Technische Informatik", including "Parallel Processing" by Prof. Nagel , "HW/SW Co-design" by Prof. Göhringer, and Akash Kumar. The part covered by Prof. Castrillon includes compilers for parallelism extraction and for parallel programming models, with emphasis on dataflow programming models. 

Language: German (or in English depending on the audience), practical sessions are in English

Schedule: In the winter semester 2019/2020, the lecture will be held on: Tuesdays, 16:40-18:10 in room APB/E007 and Fridays, 14:50-16:20 in room APB/E006 (3rd part starting on the 6.12.19).

Lectures: 6.12., 10.12., 13.12., 17.12., 20.12., 7.1., 10.1.

Practical sessions: Wednesdays, 16:40-20:00 in room APB/E069, 11.12., 18.12., 8.1.

Lecture material: available here.

Practical materials: available here.

Technische Grundlagen der Informatik


Degree Program Module
Bachelor Informatik INF-B-390
Master Informatik INF-LE-EUI, INF-LE-MA
Diplom Informatik INF-D-420
Informationssystemtechnik IST-05-PF-GS

Configuration:  3 V / 2 Ü / 0 P

Lecturer: Prof. Jeronimo Castrillon

Instructors:  Christian Menard

Description:  This course gives an introduction into foundations of electronic devices and electronic circuits for information technology and computer engineering. The material provides a bottom-up view of components and methodologies for the design of combinational and sequential digital circuits. The underlying fundamentals of electrical engineering, digital gates, and the CMOS implementation technology are introduced, but will be abstracted later on to focus on methods for analysis and synthesis of digital circuits. Finally, this course provides the tool set to design and understand simple digital circuits such as arithmetic units, storage elements, control units, and counters.

Course outline:

  • Introduction
  • Electronic components
  • Integration technology
  • Digital gates
  • Combinational logic
  • Storage elements
  • Sequential circuits

Language: German

Please register for the exam with the help of jExam.

The lecture will be held virtually, please register via Opal.

Schedule: In the winter semester 2021/2022 the lecture will be held on: Tuesdays, 11:10-13:00 biweekly (starting on Oct 19) in room HSZ/0002/E and Thursdays, 9:20-10:50 (starting on Oct 14) in room BAR/SCHÖ.

Lectures: 14.10., 19.10., 21.10., 28.10., 2.11., 4.11., 11.11., 16.11., 18.11., 25.11., 30.11., 2.12., 9.12., 14.12., 16.12., 6.1., 11.1., 13.1., 20.1., 25.1., 27.1., 3.2.

Practical Sessions: tba

Foundations of Certified Programming Language and Compiler Design


Degree Program Module
Bachelor Informatik INF-B-510
Master Informatik INF-BAS4, INF-VERT4, INF-VERT5
Diplom Informatik INF-BAS4, INF-VERT4, INF-VERT5
Master Distributed Systems Engineering INF-DSE-20-E-CPLCD

Configuration: 2 V / 2 Ü / 0 P

Lecturer: Dr.-Ing. Sebastian Ertel

Instructors: Dr. rer. nat. Andrés Goens, Lars Schütze


The Internet of Things (IoT) promises to improve people's everyday lives but the close interaction with Humans imposes stringent constraints on software. Smart factories, smart medical devices and autonomously driving cars are among the most prominent use cases where software interfaces with people closer than ever before. So close that in many IoT use cases, software takes control even in critical situations.
When this happens, a faulty software puts lives at risk. More than ever, we need strong guarantees that the IoT software is correct.

From the last decades, we have learned that developing correct programs is nearly impossible and our approaches to detecting the problems (bugs) is flawed. The advances in heterogeneous processor architectures that span even into the cloud data centers made it nearly impossible to develop correct programs even for experts. The prevalent programming languages such as Java, C/C++, etc. offer almost no help to tame this complexity and guarantee a bug-free execution. So far, performance optimizations were the dominating incentives of a compiler.
Consequently, testing sets out to hunt the bugs in a program. But testing is not only limited by its design but also extremely energy-consuming and still lacks automation. After all finding good tests is hard and now often augmented by machine learning. The more complex the software is the harder it gets to find good tests and the more (machine) learning and test execution is required.

In this lecture, we study the foundations of formal verification. In formal verification, the compiler is augmented with a theorem prover that assists the programmer to develop mathematical proofs for important properties of the program. We give an introduction to formally verified software development with special focus on programming language and compiler construction. The lecture is split into two parts. The first part of the lecture introduces the deep connections between logic and type systems that are required to prove programs correct. The second part applies these techniques to the construction of a simple language and its compiler to prove properties such as semantic preservation and determinism.

By the end of the course, the students will understand the connections between a proof and a proposition in relation to a program and its types.
The students will be able to develop programs and proofs both in Agda and Coq. Furthermore, the course teaches differernt representations of programming language semantics that underpin the verification technique for programming languages, compilers and even processors for the various IoT scenarios ranging from small medical devices to programming in the cloud.

Language: English

Schedule: In the winter semester 2021/22, the seminar will be held on Tuesday, 09:20-10:50. The seminar will be held in person in APB/E010.

Research Project (Forschungspraktikum Compilerbau)


Degree Program Module
Master Informatik INF-PM-FPG, INF-PM-FPA
Diplom Informatik INF-PM-FPG, INF-PM-FPA

Configuration: 8P/PB

Description: In this course, the student works independently but supervised on a given contemporary research project. During the project, the student learns the basic methods of research in the field of compiler construction, application of measurements, and evaluation and justification of results. The outcomes of the project are presented and defended to an expert audience. As such, the research intern is a great opportunity to get involved in the chair's research endeavours and an excellent preparation for writing a diploma or master thesis in our group!

Schedule: Indivually.

How to get started: The projects are defined individually. You can get an overview of the current projects on the staff pages. In case of interest, simply contact the corresponding staff member.

Seminar Current Topics in Compiler Construction (Hauptseminar)


Degree Program Module
Bachelor Informatik INF-B-510
Medieninformatik INF-B-530
Master Informatik INF-AQUA, INF-VERT5
Medieninformatik INF-AQUA
Diplom Informatik INF-D-940, INF-VERT5
Informationssystemtechnik INF-VERT5

Configuration: 0/2/0

Description: In this seminar, the student acquires the basic skills for doing research: performing a related work search, composing a 6-page paper-like write-down and presenting it. These are fundamental skills that are required as early as doing a Bachelors Thesis, Großer Beleg or Masters Thesis.

The student is free to chose a topic/paper from a set of pre-selected conference papers. Afterwards, the student has one month to review and gather related work on the subject matter addressed in this paper. The write-down must present a more detailed comparison on the paper topic than is already given in the related work section. It may also refer to commonalities in other areas and should suggest now research directions that the approach in the selected paper does not cover.

Schedule: There will be a maximum capacity of 10 students to participate in the seminar. Register with an e-mail to Alexander Brauckmann until 2 weeks after the semester started. We will follow up with a date for the presentation and the distribution of topics afterwards.

Language: English.

Forschungslinie – Einführung in die Forschung


Degree Program Module
Diplom Informatik INF-D-910

configuration:  1 DS

Lecturer: Prof. Jeronimo Castrillon

Description:  Overview of compiler techniques with a quick introduction to today's research problems, including automatic extraction of parallelism from sequential programming models, and tools for parallel so-called dataflow programming models. 

Schedule: Taught in the summer semester.

Language: German (or in English depending on the audience).

Lecture material: Upon email request.