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 | 2025-03-14 17:00 | 80 |
| Values representation | 2025-03-28 17:00 | 40 |
| Closure conversion | 2025-04-06 17:00 (extended!) | 80 |
| Optimization | 2025-05-02 17:00 | 100 |
| Garbage collection | 2025-05-30 17:00 | 100 |