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.
Content
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
Grading
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)