2013/2014 – Spring

Course Description

This course teaches techniques to efficiently implement modern functional and object oriented languages. Several of these techniques are applied by the student in an implementation of a simple functional language.


Part 1: implementation of high-level concepts
•   functional languages: closures, continuations, tail call elimination
•   object-oriented languages: object layout, method dispatch, membership test

Part 2: optimizations
•   compiler intermediate representations (RTL, SSA, CPS),
•   inlining and simple optimizations
•   control flow analysis
•   register allocation
•   scheduling

Part 3: run time support
•   memory management (including garbage collection),
•   interpreters and virtual machines

Required prior knowledge

Compiler Construction
Good knowledge of Scala and C programming languages


The final grade for this course is based on three aspects:

  • several group projects, to be completed in groups of at most two people,
  • individual project(s), to be completed alone,
  • an individual oral exam.

Warning: the course is evaluated during the semester, which has two important consequences:

  • there is no retake exam,
  • the oral exam will take place during the last week of the semester, not during the official exam period.

Website Navigation

Jump to:

(or use the menu on the right-hand side)