Wie im Modulkatalog unter IN2040
Inhalt:
Will man für eine Programmiersprache wie Prolog
Code erzeugen, wird man schnell feststellen,
dass 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, dass es auch gar nicht
sinnvoll erscheint, den Compiler zu sehr auf zufälligerweise
bereitgestellte Operationen
festzulegen. Eine solche Festlegung könnte
nämlich bedeuten, dass man sich
nach wenigen Jahren bereits gemüßigt fühlen müsste,
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, funktionale,
logische und nebenläufige 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 :-)
Literatur:
- 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
Aufzeichnungen:
Die aufgezeichneten Vorlesungen befinden sich im
TeleTeachingTool-Archiv.
Tools:
Visualisierungstool für Abstrakten Maschinen
VAM
Skript:
SS2005: PDF - Compilerbau-Skript (beinhaltet C-Maschine CMa)
Folien:
- Vorlesung am 24. April 2006:
PS,
PDF
- Vorlesung am 26. April 2006:
PS,
PDF
- Vorlesung am 3. Mai 2006:
PS,
PDF
- Vorlesung am 8. Mai 2006:
PS,
PDF
- Vorlesung am 15. Mai 2006:
PS,
PDF
- Vorlesung am 18. Mai 2006:
PS,
PDF
- Vorlesung am 25. Mai 2006:
PS,
PDF
- Vorlesung am 08. Juni 2006:
PS,
PDF
- Vorlesung am 22. Juni 2006:
PS,
PDF
- Vorlesung am 29. Juni 2006:
PS,
PDF
- Vorlesung am 06. Juli 2006:
PS,
PDF
- Vorlesung am 13. Juli 2006:
PS,
PDF
- Vorlesung am 20. Juli 2006:
PS,
PDF
Automatisch aus den Aufzeichnungen generierte Folien mit Annotationen gibt es im
TeleTeachingTool-Archiv.