Vorlesungsankündigung

(Sommersemester 2000)

Prof. Dr. Helmut Seidl:

Abstrakte Maschinen

Prof. Dr. Helmut Seidl - Übersetzerbau - Informatik
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 :-)

Termine:

Vorlesung: Dienstag 8-10 Uhr, V 302

Übung: Freitag 9-10 Uhr, V 302


Folien: