Assignments

A large part of this course involves practical, graded work on the implementation of a Lisp-like language called L3. That implementation consists of two parts: a compiler, written in Scala, and a virtual machine, written in C.

There are several assignments on the compiler and one on the virtual machine. All of them are to be done in groups of at most 2 students. Assignments build on top of each other, and no solution is provided for any of them.

The following assignments are currently available:

Subject Deadline Points
Desugaring none 0
CL3 to CPS translation 2020-03-12 14:30 80
Values representation 2020-04-05 22:00 40
Closure conversion 2020-04-05 22:00 80
Optimization 2020-05-03 22:00 100
Garbage collection 2020-06-01 22:00 100