News

Action Required: Exam Registration, Project Discussion Scheduling

Written on 09.01.25 by Joachim Meyer

tl;dr:

  • first exam: register now! 11 Feb 2025, 09:00-11:00 in LH 002, building E1 3.
  • fill in the poll linked on the Materials page to schedule a project presentation for your group by 14 Feb 2025
  • deadline for the project is the 21 Feb 2025
  • office hours: 15 Jan 2025 and 05 Feb 2025, each… Read more

tl;dr:

  • first exam: register now! 11 Feb 2025, 09:00-11:00 in LH 002, building E1 3.
  • fill in the poll linked on the Materials page to schedule a project presentation for your group by 14 Feb 2025
  • deadline for the project is the 21 Feb 2025
  • office hours: 15 Jan 2025 and 05 Feb 2025, each 13:00-14:30

Hi all,

the exam registration is now open in LSF. The first exam will take place on 11 Feb 2025, 9-11 in E1.3 LH 002.
You can register until one week before the exam date. Register now, so you don't forget!
If you cannot register in LSF and want to get a Schein, please register by writing an E-Mail to Joachim Meyer.

The project discussions will take place from Wednesday, 05 Mar 2025, until Friday, 07 Mar 2025, in person in room 4.01, E1.3.
Please enter your group's preferences for timeslots on these days in the poll linked on the Materials page in the CMS until no later than Friday, 14 Feb 2025.
Only one person should enter the preferences per group (under the group's name), please agree on them beforehand.
Select as many time slots as possible where all group members are available.
Your meeting will take place in a 30-minute period within one of the selected time slots.
We will announce the exact times for each group once we have assigned them after 14 Feb 2025.

To pass the project and thus the course, students must participate in their group's project discussion.
At least one group member should have the project source code and a working build available on a laptop.

As a reminder: the hard deadline for the project is the 21 Feb 2025.
Anything that is changed after this deadline will not be considered.

There will be two more office hours to discuss questions regarding the project.: 15 Jan and 5 Feb, each 13:00-14:30.

Best,
the CC Team

Course Evaluation

Written on 09.01.25 (last change on 09.01.25) by Sebastian Hack

Dear all,

we'd be very happy if you could fill out the course evaluation forms (one for the lecture, one for the tutorial). Any constructive criticism is very welcome and has helped us in the past to improve the course. Your opinion matters! You can find the links in the Material section of the… Read more

Dear all,

we'd be very happy if you could fill out the course evaluation forms (one for the lecture, one for the tutorial). Any constructive criticism is very welcome and has helped us in the past to improve the course. Your opinion matters! You can find the links in the Material section of the CMS.

 

 

Next Lecture Thu Jan 9

Written on 06.01.25 by Sebastian Hack

A happy new year to everyone. Tomorrow (Jan 7) there is no lecture. The next lecture is on Thu, Jan 9.

Office Hour Tomorrow (Wednesday) - Happy Holidays

Written on 17.12.24 by Joachim Meyer

Hi everyone!

The last office hour of the year will be tomorrow, Wednesday 18.12. 13:00-14:30.
Use the chance to discuss the project and get unstuck on missing failing tests!

For all those, who can't wait to make their compilers also generate code - the LLVM CodeGen project assignment will be… Read more

Hi everyone!

The last office hour of the year will be tomorrow, Wednesday 18.12. 13:00-14:30.
Use the chance to discuss the project and get unstuck on missing failing tests!

For all those, who can't wait to make their compilers also generate code - the LLVM CodeGen project assignment will be released this Thursday - the perfect excuse to take a break from family dinners ;-)
While we will release a new exercise sheet as well, this will only be discussed on the 13.01.

We wish you all a great holiday season, a festive and merry Christmas, for those that celebrate it, and the best possible start in the new year!
Don't forget to take a break and join the compiler fun refreshed next year.

- Your Compiler Construction Team

Lecture cancelled 12 Dec 24

Written on 11.12.24 (last change on 11.12.24) by Sebastian Hack

Dear all, I have to cancel tomorrow's lecture. We'll meet again next Tuesday for more code generation. This also means, there won't be a new exercise sheet tomorrow. I'm sorry for the inconvenience. Cheers, Sebastian

Upcoming Office Hour, Project Assignment & Mini Test

Written on 25.11.24 (last change on 25.11.24) by Joachim Meyer

Hi everyone,

we will host another Office Hour this Wednesday, 27.11. 13-14:30 to help with questions regarding the project thus far.
The office hour will be in E1.3 4.01 again.
This again is a good time to pick up your Mini Tests, if you haven't, yet.
As a heads-up: we will have a final office… Read more

Hi everyone,

we will host another Office Hour this Wednesday, 27.11. 13-14:30 to help with questions regarding the project thus far.
The office hour will be in E1.3 4.01 again.
This again is a good time to pick up your Mini Tests, if you haven't, yet.
As a heads-up: we will have a final office hour for this year on 18.12.!

The next project assignment will go live on Thursday, 28.11.

On Monday, 02.12., we will have another Mini Test in the tutorials.

Have a good week!

Office Hour on 6.11. 13:00-15:00

Written on 05.11.24 (last change on 05.11.24) by Joachim Meyer

We will offer an office hour tomorrow, 6.11., 13:00-15:00 in E1.3 4.01. This is a good place to come if you have questions regarding the project - particularly if there are still open questions about the lexer!

If you couldn't pick up your mini-tests yesterday, this will also be a good place to pick them up.

Minitest in Tutorials on 28.10.

Written on 25.10.24 by Joachim Meyer

On Monday Oct 28, we will offer to do a Minitest in the Tutorials - you will get 20min to work through a few exercises, which we will mark until the week after.
These are not admittance requirements, but good ways to gauge where you are standing with regard to the lecture contents.

Also, exercise… Read more

On Monday Oct 28, we will offer to do a Minitest in the Tutorials - you will get 20min to work through a few exercises, which we will mark until the week after.
These are not admittance requirements, but good ways to gauge where you are standing with regard to the lecture contents.

Also, exercise sheet 2 is available.

Lecture cancelled 22 Oct 24

Written on 22.10.24 by Sebastian Hack

Dear all,

I am sick and have to cancel today's lecture. Please watch the corresponding video from the previous iteration "Context-Free Grammars and Pushdown Automata" instead. It is contained in a YT playlist that is linked in the material section.

All the best,

Sebastian Hack

Tutorial assignments

Written on 18.10.24 by Joachim Meyer

We just assigned the tutorial slots for everyone, as the first session will be on Monday, 21.10. already:

  • 10 c.t. and 14 c.t. in E1.1 1.06
  • 16 c.t. in E1.3 1.07

Similar to the exercise sheets, the tutorials are voluntary.
In the first session, you will get a chance to find project group… Read more

We just assigned the tutorial slots for everyone, as the first session will be on Monday, 21.10. already:

  • 10 c.t. and 14 c.t. in E1.1 1.06
  • 16 c.t. in E1.3 1.07

Similar to the exercise sheets, the tutorials are voluntary.
In the first session, you will get a chance to find project group members, we will review some organizational questions, and some parts of the first topic to get you started with the exercise sheets.

If you have not provided your preferences yet and you were assigned an unsuitable tutorial, please let your tutor know and you will be re-assigned.

For late registrations, we will do another round of assignments on Monday morning.

First Exercise Sheet and Project Assignment Available

Written on 17.10.24 by Joachim Meyer

You can now find the first exercise sheet, which will be discussed in the tutorials on 28.10., and the first project assignment on the Materials page of the CMS.

First Lecture & Tutorial Preferences

Written on 15.10.24 (last change on 15.10.24) by Joachim Meyer

Hello everyone,

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

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

NOTE: We had to change the… Read more

Hello everyone,

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

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

NOTE: We had to change the tutorial slots (and added another one), therefore please re-do your tutorial preference selection until Sunday, 20 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!

Show all

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:
    • Tuesday 14-16 (c.t.) in Lecture Hall 001, Building E1 3
    • Thursday 12-14 (c.t.) in Lecture Hall 001, Building E1 3
  • First Meeting: Tuesday 2024-10-15
  • c.t. = cum tempore = an old tradition of some European universities.
    Here, it means that the actual time is the announced time +15 minutes

 

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 project. If you pass both, the exam and the project, 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 project is to be implemented in C++ by groups of 2-3 students. The grade will depend on how many tests your compiler passes, 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.