News
Re-Exam Results and InspectionWritten on 25.03.21 by Matthis Kruse Hi all, you can now view the results of today's re-examination on your personal status page. The re-exam inspection will take place at 2021-Mar-30. Please indicate your time slot in the respective doodle: https://doodle.com/poll/v2vcxawzhyqif82m Hi all, you can now view the results of today's re-examination on your personal status page. The re-exam inspection will take place at 2021-Mar-30. Please indicate your time slot in the respective doodle: https://doodle.com/poll/v2vcxawzhyqif82m Best, |
[Reminder] Exam AttendanceWritten on 24.03.21 by Fabian Ritter Hi all, Please be there at least 15 minutes early at the entrance to the foyer. Do not form groups. Most importantly, you must not attend the exam if you have had close contact to a person tested positive for Covid-19 or experience one of the following symptoms:
Hi all, Please be there at least 15 minutes early at the entrance to the foyer. Do not form groups. Most importantly, you must not attend the exam if you have had close contact to a person tested positive for Covid-19 or experience one of the following symptoms:
Sending a medical report certifying one or more of these symptoms to the examination office will make sure that your absence won't be counted as failed attempt. Make sure to wear medical-grade/FFP2/KN95 mouth-nose-protection (Mund-Nasen-Schutz) at all times. Please wash your hands and keep them away from your face. Hand sanitizer will be made available at the entrance of the lecture hall.
Best, |
[Important] Exam InformationWritten on 23.03.21 by Matthis Kruse Hi all, The exam will take place on Thursday, 25 Mar 2021 at 10:00 in Günter Hotz Hall E2.2. Hi all, The exam will take place on Thursday, 25 Mar 2021 at 10:00 in Günter Hotz Hall E2.2. No tools other than a non-erasable pen are allowed for this exam, especially you may not use a "cheat sheet" and you do not need to bring your own paper. Make sure to wear medical-grade/FFP2/KN95 mouth-nose-protection (Mund-Nasen-Schutz). This always holds, i.e. do not take it off. Needless to say, please wash your hands and keep them away from your face. Hand sanitizer will be made available at the entrance of the lecture hall. Do use it. Best, |
Project Results AvailableWritten on 16.03.21 by Fabian Ritter Hi all, the results of the projects, as well as the total grades based on the main exam and the project, are now available on your Personal Status page. The grades are also entered into the LSF, so you should now (until Thursday) be able to register there for the re-exam as well. Best regards, Hi all, the results of the projects, as well as the total grades based on the main exam and the project, are now available on your Personal Status page. The grades are also entered into the LSF, so you should now (until Thursday) be able to register there for the re-exam as well. Best regards, |
Presentation of Competition ResultsWritten on 15.03.21 by Fabian Ritter Hi all, we will present the results of the project competition tomorrow (Tuesday, 16-Mar-2021) at 16:00 CET in an MS Teams meeting in the main channel. Please join if you want to learn about the competition results and how they were produced. Best regards,
|
Project Presentation Schedule and Re-Exam Registration (action required)Written on 10.03.21 by Fabian Ritter Hi all, firstly, the members of project groups who registered for a project presentation should now have received an invitation to an MS Teams meeting with a date and time that is suitable for the group (if you received two invitations, please consider only the later one). Please check your… Read more Hi all, firstly, the members of project groups who registered for a project presentation should now have received an invitation to an MS Teams meeting with a date and time that is suitable for the group (if you received two invitations, please consider only the later one). Please check your invitation and send a email to Fabian Ritter in case of errors. Please join the scheduled meetings a few minutes ahead of time to clear out possible technical problems and make sure that your microphone and webcam both work. Secondly, the re-exam for the course will be written on the 25th of March 2021 on Campus in person, following the University's Covid safety guidelines. In either case, UdS students additionally have to register for the re-exam in the LSF system. Best regards, |
Project: The end is near, the end is coming (action required)Written on 03.03.21 by Fabian Ritter Hi all, on Friday, the project comes to a close. This means that the last daily test runs that you can react to will happen in the night from Thursday to Friday, so be careful what you push. Hi all, on Friday, the project comes to a close. This means that the last daily test runs that you can react to will happen in the night from Thursday to Friday, so be careful what you push. The project presentations will take place from Thursday, March 11, to Monday, March 15, via MS Teams. Please enter the preferences of your group for a time slot on these days in this Doodle until no later than Tuesday, March 9. Only one person should enter the preferences per group, please agree on them beforehand. Please select as many time slots as possible where all group members are available. Your meeting will take place in a 30 minute period within a selected time slot, we will announce the exact times for each group once we have the assignment to the time slots. To pass the project, students must participate in their group's project presentation. The meetings will not be recorded. You will need a working camera and microphone. At least one group member should have the project source code and a working build available for a screen share. Best, |
Tests for the CompetitionWritten on 26.02.21 by Fabian Ritter Hi all, from today on, our daily tests include four new tests that check whether your implementation can compile the benchmark programs that we will use for the competition. Be aware that these tests here do not check exhaustively whether your compiled programs are correct (but their correctness… Read more Hi all, from today on, our daily tests include four new tests that check whether your implementation can compile the benchmark programs that we will use for the competition. Be aware that these tests here do not check exhaustively whether your compiled programs are correct (but their correctness will be evaluated when for the competition). We therefore suggest that you thoroughly test your implementation on larger input programs.
Best, the CC Team |
Exam Results and Exam InspectionWritten on 25.02.21 by Matthis Kruse Hi all, you can now view the results of today's examination on your personal status page. The exam inspection will take place at 2021-Mar-01. Please indicate your time slot in the respective doodle: https://doodle.com/poll/fdz9zq383ytfwwpm Best, |
[Reminder] Exam AttendanceWritten on 24.02.21 by Matthis Kruse Hi, Please be there at least 15 minutes early at the entrance to the foyer. Do not form groups. Most importantly, you must not attend the exam if you have had close contact to a person tested positive for Covid-19 or experience one of the following symptoms:
Hi, Please be there at least 15 minutes early at the entrance to the foyer. Do not form groups. Most importantly, you must not attend the exam if you have had close contact to a person tested positive for Covid-19 or experience one of the following symptoms:
Sending a medical report certifying one or more of these symptoms to the examination office will make sure that your absence won't be counted as failed attempt. Make sure to wear medical-grade/FFP2/KN95 mouth-nose-protection (Mund-Nasen-Schutz) whenever you are not sitting or talking to someone, i.e. when asking a question during the exam. Please wash your hands and keep them away from your face. Hand sanitizer will be made available at the entrance of the lecture hall.
Best, |
Exam InformationWritten on 22.02.21 by Matthis Kruse The exam will take place on Thursday, 25 Feb 2021 at 10:00 in Günter Hotz Hall E2.2. No tools other than a non-erasable pen are allowed for this exam, especially you may not… Read more The exam will take place on Thursday, 25 Feb 2021 at 10:00 in Günter Hotz Hall E2.2. No tools other than a non-erasable pen are allowed for this exam, especially you may not use a "cheat sheet" and you do not need to bring your own paper. Make sure to wear medical-grade/FFP2/KN95 mouth-nose-protection (Mund-Nasen-Schutz) whenever you are not sitting or talking to someone, i.e. when asking a question during the exam. Please wash your hands and keep them away from your face. Hand sanitizer will be made available at the entrance of the lecture hall. You must not attend the exam if you have had close contact to a person tested positive for Covid-19 or experience one of the following symptoms:
Sending a medical report certifying one or more of these symptoms to the examination office will make sure that your absence won't be counted as failed attempt. Best, |
Main Exam Registration (action required)Written on 02.02.21 by Fabian Ritter Hi all, the main exam for the course will be written on the 25th of February 2021 on Campus in person, following the University's Covid safety guidelines. Hi all, the main exam for the course will be written on the 25th of February 2021 on Campus in person, following the University's Covid safety guidelines. In either case, UdS students additionally have to register for the main exam in the LSF system. Best regards, |
Last Project Phase and CompetitionWritten on 27.01.21 by Fabian Ritter The project assignment for the sixth and last phase of the project, the program optimization, are now available on the Materials page. There will be no dedicated automated tests for this phase, so be sure to use your own tests to validate your optimization. Additionally, the Materials page now… Read more The project assignment for the sixth and last phase of the project, the program optimization, are now available on the Materials page. There will be no dedicated automated tests for this phase, so be sure to use your own tests to validate your optimization. Additionally, the Materials page now contains a document with information on the competition, where the winning teams can earn a bonus on their total course grades. Be sure to check the document even if you don't intend to participate in the competition since it links to a helpful toolkit for testing your compiler. |
Important InformationWritten on 25.01.21 by Matthis Kruse Hi all, since the lectures this week discuss recent topics and are, thus, not relevant for your examination, we'll host them as a normal Microsoft Teams Meeting instead of a Live Event, so they will not be recorded. This way, the lecture can be much more interactive. Regarding the exam, we have… Read more Hi all, since the lectures this week discuss recent topics and are, thus, not relevant for your examination, we'll host them as a normal Microsoft Teams Meeting instead of a Live Event, so they will not be recorded. This way, the lecture can be much more interactive. Regarding the exam, we have started another poll on our MS-Teams page. We kindly ask you to fill out all polls until no later than Wednesday: https://teams.microsoft.com/l/message/19:237e5c752d7a43e99c1407f52e285a58@thread.tacv2/1611328617397?tenantId=67610027-1ac3-49b6-8641-ccd83ce1b01f&groupId=b0af851f-e38b-47f3-9361-a98e71eea998&parentMessageId=1611328617397&teamName=%5B126736%5D%20Compiler%20Construction&channelName=General&createdTime=1611328617397
Best regards, the CC team |
Exam Attendance PollWritten on 22.01.21 by Matthis Kruse Hi all, we ask you kindly to fill out a poll until no later than 27.01.2021 regarding your willingness to take the exam: Hi all, we ask you kindly to fill out a poll until no later than 27.01.2021 regarding your willingness to take the exam: The poll is anonymous and helps us to plan ahead.
Best regards,
|
Course EvaluationWritten on 11.01.21 by Fabian Ritter Hi all, today starts the course evaluation phase, where the students are asked to share what they did or did not like about the course. Please participate in the short anonymous survey via the links on this page. The survey is open until 29 Jan 2021. Your participation helps us to improve the… Read more Hi all, today starts the course evaluation phase, where the students are asked to share what they did or did not like about the course. Please participate in the short anonymous survey via the links on this page. The survey is open until 29 Jan 2021. Your participation helps us to improve the course in future iterations. |
Project Phase 5 and Hard Project DeadlineWritten on 08.01.21 by Fabian Ritter The project assignment for the fifth phase of the project, the LLVM IR Generation, and the IR Generation examples are now available on the Materials page. The daily tests for this phase will run together with those for the previous phases from tonight on. The project assignment for the fifth phase of the project, the LLVM IR Generation, and the IR Generation examples are now available on the Materials page. The daily tests for this phase will run together with those for the previous phases from tonight on. We now also have a date for the final hard project deadline: Your work on the project must be completed before 23:59:59 CET on 5 March 2021. |
Changes in Lecture ScheduleWritten on 07.01.21 by Sebastian Hack Because of scheduling conflicts, I need to cancel tromorrow's lecture (we have enough time to cover the material in the remaining sessions) and change the time of the lecture of Tuesday 2021-01-19 from 16:00 to 15:00.
Sorry for the inconveniences, Sebastian |
Availability of Exercise Sheet SolutionsWritten on 18.12.20 by Matthis Kruse Hi all, We have decided to change the time at which exercise solutions become available. The new time is each Wednesday, 8AM. Since the solutions will be made available prior to the tutorials, the tutors won't discuss the solutions anymore in an explicit manner. Hi all, We have decided to change the time at which exercise solutions become available. The new time is each Wednesday, 8AM. Since the solutions will be made available prior to the tutorials, the tutors won't discuss the solutions anymore in an explicit manner. We hope you have a nice Christmas holiday despite the circumstances, |
Project Phase 4Written on 16.12.20 by Fabian Ritter The project assignment for the fourth phase of the project, the semantic analysis, is now available on the Materials page. The daily tests for this phase will run together with those for the previous phases from tonight on. |
Project Phase 3Written on 04.12.20 by Fabian Ritter The project assignment for the third phase of the project, the AST pretty printer, is now available on the Materials page. The daily tests for this phase will run together with those for the previous phases from tonight on. |
Project Phase 2Written on 18.11.20 by Fabian Ritter The project assignment for the second phase of the project, the parser, is now available on the Materials page. The daily tests for this phase will run together with those for the lexer from tonight on. |
Option to submit your exercise sheet solution in the CMSWritten on 13.11.20 by Matthis Kruse Hi all, We've added the option to upload your solution for the voluntary exercise sheet on your personal status page. We wish you a nice weekend, |
Tutorials and Project TestingWritten on 10.11.20 by Fabian Ritter You can now see the assignment to the tutorials on your personal status page in the CMS. Additionally, the daily project test runs have started, you can track… Read more You can now see the assignment to the tutorials on your personal status page in the CMS. Additionally, the daily project test runs have started, you can track the progress of all teams on this website. |
Wrapping up the Group Finding PhaseWritten on 09.11.20 by Fabian Ritter The group finding phase ends today. If you are still looking for a project group or if you are a group of two that would like to split the work among more people, please send a short mail to Fabian Ritter as soon as possible so that we can assign you to a group. |
First exercise sheet and project assignment availableWritten on 06.11.20 by Matthis Kruse Please note that the first exercise sheet and the first project assignments are available now on the Materials page. Do not forget to follow the How to attend and find a project team until Monday, e.g. using our teams chat.
We wish you a nice weekend, the CC team |
Group Finding and Project RegistrationWritten on 05.11.20 by Fabian Ritter Hi all, please remember to form project groups of 2 to 3 students until Monday, 9 Nov. Use the Group Finding channel in Teams to connect with fellow students and follow the instructions on the How to Attend page to register your GitLab group in time. Additionally, to make up for the lost lecture… Read more Hi all, please remember to form project groups of 2 to 3 students until Monday, 9 Nov. Use the Group Finding channel in Teams to connect with fellow students and follow the instructions on the How to Attend page to register your GitLab group in time. Additionally, to make up for the lost lecture room conversations, we will have a virtual group finding event this Friday after the lecture. Instructions for joining will be announced in the Teams chat. See you there, the CC team |
First Compiler Construction LectureWritten on 02.11.20 by Fabian Ritter Hi all, the first lecture will be tomorrow, on Tuesday, 3 Nov, at 16:00 (c.t., CET) via MS Teams. If you haven't joined yet, please make sure that you join the Team early enough so that you can participate. See you in the lecture, the CC team |
Welcome to the CourseWritten on 19.10.20 by Fabian Ritter Welcome to this year's Compiler Construction Core Lecture at Saarland University. If you consider participating in the course, please register here and in the corresponding Team in time for the first lecture. Have a great semester! |
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
- Place: Online (via Microsoft Teams)
- Time: Tuesday 16-18 (c.t.) and Friday 10-12 (c.t.) CET
- First Meeting: Tuesday 2020-11-03, 16-18 (c.t.) CET
- c.t. = cum tempore = an old tradition of some European universities.
Here, it means that the actual time is the announced time +15 minutes
If you are interested in participating but not enrolled at Saarland University, please send a mail with a few words about your background to Sebastian Hack to get access to the course.
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.