News

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.