Registration for this course is open until Sunday, 19.10.2025 23:59.

News

First Lecture & Tutorial Preferences

Written on 13.10.25 (last change on 14.10.25) by Joachim Meyer

Welcome everybody!

We're glad you chose to hear Compiler Construction (CC) this year.

Tomorrow, Oct 14, we're kicking the lecture off at 08:30 in lecture hall 003 (E 1.3).
We will review the course's organization, including the two points below, and then dive into the topic.

If you… Read more

Welcome everybody!

We're glad you chose to hear Compiler Construction (CC) this year.

Tomorrow, Oct 14, we're kicking the lecture off at 08:30 in lecture hall 003 (E 1.3).
We will review the course's organization, including the two points below, and then dive into the topic.

If you registered early, you might not have been able to select a tutorial preference yet. Please select your tutorial preference until Sunday, 19 Oct.
If you are not yet registered for the course, but want to attend, please register until Sunday as well.

Finally, to register for the project: please follow the steps at How to Attend.

See you in class!

Compiler Construction

The course treats compiler construction for imperative programming languages. This includes lexical, syntactical, and semantic analysis as well as static program analysis, optimization, and code generation. This course provides all necessary theoretical knowledge required to implement a compiler from scratch, which forms the practical part of the lecture.

 

Syllabus

  • Lexing and Parsing (LL, LR)
  • Semantic Analysis, Type Checking
  • Foundations of Program Analysis by Abstract Interpretation
  • Program Optimizations and their Analyses
  • SSA
  • LLVM
  • Instruction Selection
  • Scheduling
  • Register Allocation
  • Polyhedral Compilation
  • DSLs

 

Lecture Dates

  • The lectures will be recorded and made available online.
  • Time and Place: Tuesdays: 8:30, Thursdays: 12:15, E1.3 HS003
  • First Lecture: Tuesday, 14.10., 8:30, E1.3 HS003

 

Modus Operandi

There will be voluntary exercise sheets that are discussed in tutorials.

To get a course certificate, students must pass the final exam and the projects. If you pass both, the exam and the projects, the final grades for the course will be computed as the (equally weighted) arithmetic mean between your exam grade and your project grade, rounded towards your exam grade.

The practical projects are to be implemented in C++. The first individually, the second in groups of 2-3 students. The grade will depend on how many tests your projects pass, how much the individual students contributed to the project, and the demonstrated understanding of the project in the oral presentation. In the end of the lecture period, we will host a competition for the student compiler implementations. The top performing groups of the competition will earn a 0.3 (or 0.4) bonus to their total course grades.

Privacy Policy | Legal Notice
If you encounter technical problems, please contact the administrators.