Compiler Construction Sebastian Hack Core Lecture (9 CP)

News

11.01.2021

Course Evaluation

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... 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.

08.01.2021

Project Phase 5 and Hard Project Deadline

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.
Please... Read more

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.
Please remember to first merge in the newest version of the project template to get the up-to-date build script for LLVM.

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.
 

07.01.2021

Changes in Lecture Schedule

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

18.12.2020

Availability of Exercise Sheet Solutions

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... Read more

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.
However, we encourage you to still join and use the opportunity to have fruitful discussions about potential difficulties you might encounter when solving the exercise sheets or understanding the solutions.
Additionally, also note that you may still discuss any project-specific matters with your tutors.

We hope you have a nice Christmas holiday despite the circumstances,
the CC team

16.12.2020

Project Phase 4

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.

04.12.2020

Project Phase 3

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.

18.11.2020

Project Phase 2

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.

13.11.2020

Option to submit your exercise sheet solution in the CMS

Hi all,

We've added the option to upload your solution for the voluntary exercise sheet on your personal status page.
This way, getting feedback for it might become easier than by mail.

We wish you a nice weekend,
the CC team

10.11.2020

Tutorials and Project Testing

You can now see the assignment to the tutorials on your personal status page in the CMS.
The first tutorials will be held on Thursday in their MS Teams channels at 14:15 CET (Tutorial 1) or 16:15 CET (Tutorial 2), respectively.

Additionally, the daily project... Read more

You can now see the assignment to the tutorials on your personal status page in the CMS.
The first tutorials will be held on Thursday in their MS Teams channels at 14:15 CET (Tutorial 1) or 16:15 CET (Tutorial 2), respectively.

Additionally, the daily project test runs have started, you can track the progress of all teams on this website.
Lastly, you now have access to the test-collection/tests project in the GitLab. You can use this repository to share the tests that you write for your compiler with the other groups.

09.11.2020

Wrapping up the Group Finding Phase

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.

06.11.2020

First exercise sheet and project assignment available

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... Read more

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

05.11.2020

Group Finding and Project Registration

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... 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

02.11.2020

First Compiler Construction Lecture

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

19.10.2020

Welcome to the Course

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!

Show all
 

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.



Privacy Policy | Legal Notice
If you encounter technical problems, please contact the administrators