|
Overview
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
Schedule
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 |
Slides
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.
Tutorials
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:
Contacts
- Prof. Martin Odersky
martin.odersky@epfl.ch, INR 329,
tel. +41 21 693 6863, consulting hours: Tuesday, 15:00-16:00
- Christoph Zenger
zenger@acm.org, INR 321,
tel. +41 21 693 6864, consulting hours: Thursday, 11:00-12:00
- Matthias Zenger
matthias.zenger@epfl.ch, INR 321,
tel. +41 21 693 6864, consulting hours: Thursday, 11:00-12:00
Related Links
|