Vorlesungsankündigung

(Sommersemester 2002)

Prof. Dr. Helmut Seidl:

Abstrakte Maschinen

Prof. Dr. Helmut Seidl - Übersetzerbau - Informatik

! A C H T U N G ! T E L E T E A C H I N G !

Diese Veranstaltung findet simultan in Trier und Saarbrücken statt und wird jeweils von einem Vorlesungsort zum anderen live durch das Internet übertragen.

  • TeleTeaching @ Universität Trier
  • Weiterhin stehen Compiler-Frontends sowie Animatoren zur Verfügung, um selbst Experimente mit Übersetzung und Ausführung von Programmen zu machen.
  • VAM-Simulator (Visualisierung Abstrakter Maschinen) (Uni Trier)
  • GANIMAM (Uni Saarbrücken)

  • Inhalt der Veranstaltung

    Will man für eine Programmiersprache wie Prolog Code erzeugen, wird man schnell feststellen, daß man bei der Übersetzung gerne Befehle verwenden würde, die so von einer konkreten Maschine nicht bereit gestellt werden. Andererseits ändern sich die Instruktionssätze moderner Rechner so schnell, daß es auch gar nicht sinnvoll erscheint, den Compiler zu sehr auf zufälligerweise bereitgestellte Operationen festzulegen. Eine solche Festlegung könnte nämlich bedeuten, daß man sich nach wenigen Jahren bereits gemüßigt fühlen müßte, den Compiler gänzlich neu zuschreiben. Bereits bei der Implementierung des ersten Pascal Compilers kam man darum auf die Idee, zuerst Code für eine leicht idealisierte Maschine zu erzeugen, deren Befehle dann jeweils nur noch auf den verschiedenen konkreten Zielrechnern zu implementieren waren. Auch die Übersetzung moderner Programmiersprachen wie Prolog, Haskell oder Java basieren auf diesem Prinzip. Einerseits erleichtert dieses Vorgehen die Portierbarkeit des Compilers. Andererseits vereinfacht dies auch die Übersetzung selbst, da man den Befehlssatz entsprechend der jeweiligen zu übersetzenden Programmiersprache geeignet wählen kann. In der Vorlesung stellen wir solche abstrakte Maschinen für imperative, objektorientierte, funktionale und logische Programmiersprachen vor. Insbesondere sind wir dabei natürlich an den Übersetzungsschemata interessiert, wie man für die jeweiligen konkreten Programmkonstrukte der Programmiersprache die zugehörigen abstrakten Maschinenbefehlsfolgen konstruiert. Zumindest rudimentäre Kennntnis verschiedener Programmiersprachen könnte sich als nützlich erweisen :-)

    Die Vorlesung findet auf Englisch statt.


    Termine:

    Vorlesung: Dienstag 14-16 Uhr, HS 2

    Übung: Mittwoch 10-12 Uhr, V 301

    Übungsblätter und Folien/Skript gibt es unter:

  • Informationen zur Vorlesung
  • Aufzeichnungen der Vorlesungen