A large part of this course involves practical, graded work on assignments. You will work on the implementation of a Lisp-like language called L3. The implementation consists of two parts:

  • A compiler and interpreter written in Scala
  • A virtual machine written in C

There will be multiple assignments on the compiler side and one on the virtual machine. Some of the assignments are individual while others should be solved in groups of two students. You should form groups as soon as possible. Once formed a group may not be changed later. Assignments will build on top of each other and it’s the student’s duty to develop and improve their compiler from one assignment to the next.

Submission regulations

If you miss the submission deadline for a project, you still have the possibility to do a late hand-in of your work. For each day that lies between the deadline and your hand-in, your grade will be reduced by 20%. An example: if the deadline is April 22, 12:00, and you hand in your work on April 24, 09:00, you will get only 60% of the points you would have gotten by submitting the same project on time.