Computer Science Department
Programming Methods Laboratory
Ecole Polytechnique Federale de Lausanne
Compilation     winter semester 1999/2000



This is a course about implementing programming languages. It aims to teach the fundamental aspects of analysing programming languages and mapping them into executable form. At the end of the course, the student should
  • be able to define the formal syntax of a programming language,
  • be able to define the semantics of a language through interpreters,
  • know the internal structure and implementation of compilers,
  • be able to write a compiler that translates a simple language into the code of a virtual machine,
  • know common frameworks and design patterns used in compiler construction,
  • know runtime representations of important programming constructs.

Some less tangible, but nevertheless important goals are:

  • Improving the understanding of programming languages,
  • understanding trade-offs between expressiveness, simplicity, and performance of programming languages,
  • experience the design and implementation of a software project where theory is essential for success.
The course and the tutorials are given in English.

Bibliography: Andrew W. Appel, Modern compiler implementation in Java. Addison-Wesley, 1997.
Lecturer: Prof. Martin Odersky


Lectures: Wednesday 11:00-13:00, room IN 2
Friday 13:00-14:00, room IN 202
Tutorials: Friday 14:00-15:00, IN 010 (A) and INR 219 (B)
Practical tutorials are held in room IN 1


We are trying to publish our slides as soon as possible. Since we extend the slide set continously, it may happen, that you downloaded a preliminary version. To help you keeping your printed slides updated, we started issuing version numbers. As soon as a slide set is complete, it is marked as final.


We hope you enjoyed the Compilation lecture and the practical tutorials... :-)

Exam Results: You can check out your mark now! We have a poster on the whiteboard in our floor INR, third floor, with your marks and some statistics.

Finally, you can browse the tutorial slides. The postscript files of the new slides don't come with the fancy background, to speed up the printing process a bit. We're aware, that the files are still big and we are trying to find a solution for that problem.

Here are some useful files for the project:


Related Links

LAMP homepage
Last modified: 08.02.2000, Matthias Zenger <>