Virtual Machines
Dr. Kumar Neeraj Verma
Prof. Dr. Helmut Seidl
(Summer Semester 2008)
Time and venue
- Lectures: Tuesday 10:15 - 11:45 in MI 02.07.014
- Exercises: Thursday 10:15 - 11:45 in MI 02.07.014
Exam
Exam will be oral. To register and to fix an appointment, please email before 4 July 2008 at verma@in.tum.de
Contents
While trying to produce code for a programming language like Prolog, one
quickly realizes that one would like to use certain instructions during
the translation which are not already available on concrete machines. On
the other hand, instruction sets of modern computers are changing so
quickly that it doesn't seem useful for the compiler to depend on some
arbitrarily chosen instructions. Such a dependance would mean that in a
few years one would feel obliged to rewrite the compiler anew. With the
implementation of the first Pascal compilers, one already arrived at the
idea of first generating code for a slightly idealized machine, each of
whose instructions then only need to be implemented on different target
machines. Translation of modern programming languages like Prolog, Haskell
or Java are also based on this principle. On one hand this facilitates
portability of the compiler. On the other hand this also simplifies
the translation itself since one can choose a suitable instruction set
according to the programming language to be translated. In particular,
we consider:
- the translation of C;
- the translation of a functional language;
- the translation of Prolog;
- the translation of a concurrent dialect of C.
Literature
- Wilhelm, Seidl: Übersetzerbau: Virtuelle Maschinen. Springer, 2007
- Aho, Sethi, Ullmann: Compilers. Principles, Techniques and Tools. Addison-Wesley, 1985
- Wilhelm, Maurer: Übersetzerbau. Theorie, Konstruktion, Generierung. Springer-Lehrbuch, 1992
- Steven S. Muchnick: Advanced Compiler Design and Implementation. Morgan Kaufmann, 1997
Recordings
Recorded lectures from previous years are available in the
TeleTeachingTool archives.
Tools
VAM: Visualization of Abstract Machines.
Lecture slides
- 14 Apr 2008: PS, PDF
- 16 Apr 2008: PS, PDF
- 21 Apr 2008: PS, PDF
- 23 Apr 2008: PS, PDF
- 28 Apr 2008: PS, PDF
- 29 Apr 2008: PS, PDF
- 06 Mai 2008: PS, PDF
- 20 Mai 2008: PS, PDF
- 27 Mai 2008: PS, PDF
- 03 Jun 2008: PS, PDF
- 10 Jun 2008: PS, PDF
- 17 Jun 2008: PS, PDF
- 24 Jun 2008: PS, PDF
- 01 Jul 2008: PS, PDF
- 08 Jul 2008: PS, PDF
Exercises
- PS, PDF
- PS, PDF
- PS, PDF
- PS, PDF
- PS, PDF
- PS, PDF
- PS, PDF
- PS, PDF
- PS, PDF
- PS, PDF
- PS, PDF
- PS, PDF