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.
- 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 which lies between the deadline and your hand-in, the maximal amount of points you can achieve will drop 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 at most 60% of the maximal points for that project.
The program will be updated in during the semester.