Go to file
2020-02-13 23:25:38 +01:00
examples Add operator_precedence example 2020-02-13 23:25:38 +01:00
images Add fib_ast example source 2019-02-01 17:06:49 +01:00
slides Add intro slides 2019-03-06 15:55:44 +01:00
evaluation_scheme.md Use mandelbrot as must-have integration test 2019-03-03 12:06:56 +01:00
example_input.md Fix typo + rewording 2019-03-09 22:54:16 +01:00
README.md README: Add links to deadline topics 2019-03-10 17:29:19 +01:00
specification.md Fix void main 2019-06-17 09:58:36 +02:00
submission.md Minor adjustments and rewording 2019-02-17 22:57:48 +01:00

Compiler Construction

Date Deadline
2019-03-15 Example Input
2019-04-05 Milestone 1
2019-05-03 Milestone 2
2019-05-24 Milestone 3
2019-06-14 Milestone 4
2019-06-21 Milestone 5
2019-07-12 Final

Structure

The ultimate goal of this course is to build a working compiler according to the given specification.

You are not allowed to use code from other people participating in this course or code that has been submitted previously by somebody else. However, a getting started code-base is provided.

You will be able to work on your compiler during the lab. I'll be present for questions all the time, yet a big part of this course is to acquire the necessary knowledge yourself.

Please note that minor modifications may be made to the specification until 1 week before the final deadline. Therefore, double check for modifications before submitting — Git provides you the diff anyway.

Apart from this, there will be one required submission near the beginning of the semester. You have to submit an additional example input, which may be added to the set of example inputs — this way the number of integration tests is extended.

Furthermore, there are five optional milestones. They provide a golden thread and enable you to receive feedback.

You may work together in teams of 13 people. Teams may span across pro-seminar groups.

Grading

The final grade is computed as the weighted average of the final submission (80%) and the QA sessions (20%). Both of these parts as well as the majority of QA session grades must be positive to pass this course.

Other submissions are not graded.

Be sure to adhere to the specification, deviating from it (without stating a proper reason) will negatively impact your grade. See Final Submission Evaluation Scheme for more details.

Evaluation System

I'll be using a virtualised, updated Ubuntu 18.04 LTS (64 bit) to examine your submissions. From this you can infer the software versions I'll be using. The submitted code has to compile and run on this system.

Absence

You must not be absent more than three times to pass this course. You do not have to inform me of your absence.

Contacting Me

If you have questions or want to know more about a certain topic, I am always glad to help. You can find me in room 2W05 of the ICT building.

You can also contact me by email, just be sure to send it from your university account. Please keep your email informal and include the course number in the subject. Preferably use the following link.

📧 send email