News
Office Hour on 6.11. 13:00-15:00Written 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. 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. Also, exercise sheet 2 is available. |
Lecture cancelled 22 Oct 24Written 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 assignmentsWritten 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:
Similar to the exercise sheets, the tutorials are voluntary. We just assigned the tutorial slots for everyone, as the first session will be on Monday, 21.10. already:
Similar to the exercise sheets, the tutorials are voluntary. 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 AvailableWritten 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 PreferencesWritten 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). 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). NOTE: We had to change the tutorial slots (and added another one), therefore please re-do your tutorial preference selection until Sunday, 20 Oct. 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:
- 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.