News
02.02.2023
|
Today's Lecture moved to next TuesdayDear all, the lecture today is moved to next Tuesday. There'll be no lecture today. |
27.01.2023
|
Last AssignmentsHi all, the last exercise sheet, the last project assignment, and information on the voluntary project competition are now available on the Materials page. Hi all, the last exercise sheet, the last project assignment, and information on the voluntary project competition are now available on the Materials page. -- the CC Team |
10.01.2023
|
Course EvaluationDear all, the course evaluation started and we'd like to invite you to evaluate the course and your tutorial. To this end, please use the respective link in the Evaluation section of the Materials page here in CMS. Thank you for participating! |
06.01.2023
|
New Project Assignment and New Exercise SheetHi all, and a Happy New Year! You can now find the assignment for the second-to-last phase of our compiler project, the LLVM IR Generation, on the Materials page of the CMS, together with an archive of helpful example programs and the first exercise sheet of the... Read more Hi all, and a Happy New Year! You can now find the assignment for the second-to-last phase of our compiler project, the LLVM IR Generation, on the Materials page of the CMS, together with an archive of helpful example programs and the first exercise sheet of the year. Lectures and tutorials will start again next week in the usual schedule. Have a good start into the new year, -- the CC Team |
22.11.2022
|
Today's lecture cancelledDear all, unfortunately, I have to cancel today's lecture again due to a sickness. I am very sorry for the inconvenience. Best regards, |
10.11.2022
|
Permanent Change of Room for the Second Tutorial and New Project Assignment AvailablePlease note that, starting tomorrow, 2022-11-11, the late tutorial (in the 12-14 time slot) will regularly take place in building E1 1, seminar room 106 instead of the lecture hall. Moreover, the project assignments for the parsing and AST printing stages are now... Read more Please note that, starting tomorrow, 2022-11-11, the late tutorial (in the 12-14 time slot) will regularly take place in building E1 1, seminar room 106 instead of the lecture hall. Moreover, the project assignments for the parsing and AST printing stages are now available on the Materials page. |
03.11.2022
|
Today's lecture cancelledDear all, we unfortunately have to cancel today's lecture. Instead we provide the recordings of today's topics from the previous instance in the YT playlist. We're sorry for the inconvenience. |
02.11.2022
|
First TutorialsYour tutorial assignment is now visible on your Personal Status page. The first tutorials take place this week, on Friday (2022-11-04),
Your tutorial assignment is now visible on your Personal Status page. The first tutorials take place this week, on Friday (2022-11-04),
In the tutorials, you will have the opportunity to write a voluntary minitest to get feedback on your understanding of the course material. |
28.10.2022
|
Exercise Sheet and Project Assignment AvailableYou can now find the first exercise sheet, which will be discussed in the tutorials next week, and the first project assignment on the Materials page of the CMS. |
25.10.2022
|
Welcome!Welcome to the course! Please register here until Monday, 2022-10-31, and read the how-to-attend guide. In particular, please also follow the project registration steps there until Monday, 2022-10-31.
We wish you a successful semester, The CC Team |
Compiler Construction
General Information
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 10-12 (c.t.) in Lecture Hall 002, Building E1 3
- Thursday 12-14 (c.t.) in Lecture Hall 001, Building E1 3
- First Meeting: Tuesday 2022-10-25, 10-12 (c.t.), Lecture Hall 002
- 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.