Lehrstuhl Informatik II   
Sprachen und Beschreibungsstrukturen      
   Home Lehre Sommersemester 11 Vorlesungen Virtual Machines login

Virtual Machines

Dozent:Prof. Dr. Helmut Seidl
Ort/Zeit:MI 02.07.014 Di 14:00
ModulNummer:IN2040
Beschreibung:    Virtual Maschines and Translation of Programming languages, such as C, Prolog and a functional language.

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.

Materials (outdated)

  • Code Generation Schemata for C and the CMa VM (PDF)
  • Code Generation Schemata for OCaml and the MaMa VM (PDF)
  • Code Generation Schemata for PuF (Prolog) and the WiM VM (PDF)

Slides

  • May 03, 2011: PDF
  • May 10, 2011: PDF
  • May 17, 2011: PDF
  • May 24, 2011: PDF
  • May 31, 2011: PDF
  • June 07, 2011: PDF
  • June 21, 2011: PDF
  • June 28, 2011: PDF
  • July 05, 2011: PDF
  • July 12, 2011: PDF
  • July 19, 2011: PDF

Literature

  • Seidl, Wilhelm: Compiler Design: Virtual Machines. Springer

Links

  • VAM: Visualisation of Abstract Machines
  • TTTVideos from the Lecture


TUM - Lehrstuhl Informatik II (Sprachen und Beschreibungsstrukturen) Thanks: Tango and TinyMCE     Generationszeit: 7 ms