Vorlesungsankündigung
(Wintersemester 2002/2003)
Compilerbau
Prof. Dr. Helmut Seidl - Übersetzerbau - Informatik
Ein Compiler ist ein wesentlicher Bestandteil der Systemsoftware,
dessen Aufgabe darin besteht, Programme einer höheren
Programmiersprache - etwa C oder Java -
in Folgen von Maschinenbefehlen eines realen Rechners zu übersetzen.
Compiler sind relativ komplexe Programme; bei ihrer Konstruktion
finden die Ideen und Methoden aus vielen Bereichen ihre Verwendung.
Die ersten beiden Phasen etwa, die lexikalische bzw. syntaktische
Analyse des Eingabeprogramms sind eine beliebte Spielwiese für
Verfahren aus dem Bereich der formalen Sprachen, während später
während der Codeerzeugung bei der Registerverteilung etwa
approximative Methoden zur Graphfärbung Verwendung finden.
Die Vorlesung gliedert sich dabei in folgende Abschnitte.
Nach einer kurzen Übersicht über die einzelnen Komponenten
eines Compilers und deren Aufgaben wenden wir uns den Techniken zu,
wie eine Übersetzung realisiert werden kann. Insbesondere
behandeln wir die klassischen Gebiete des Compilerbaus, die Methoden zur
lexikalischen und syntaktischen Analyse von Programmen.
Anschließend betrachten wir weniger standardisierte Teilaufgaben
eines Compilers, wie die Typüberprüfung von Programmen, die
Registerverteilung und die Instruktionsselektion.
Die Vorlesung wendet sich an StudentInnen des Hauptstudiums.
Literatur:
-
Aho, Sethi, Ullman: Copmpilers.
Principles, Techniques, and Tools.
Addison-Wesley 1985
-
Wilhelm, Maurer:
Übersetzerbau. Theorie, Konstruktion, Generierung. Springer-Lehrbuch, 1992
-
Steven S. Michnick:
Advanced Compiler Design and Implementation. Morgan Kaufmann, 1997
Termine:
Vorlesung:
Montag 16-18 Uhr, HS 10
Freitag 12-14 Uhr, E 52
Übung:
Freitag 14-16 Uhr, V 302