News
Currently, no news are available
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. 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.