Ab sofort
hängt die Terminliste (28. Juli, 4. August und 31. August) für die
mundliche Prüfung an der Tür des Sekretariats (Raum
02.07.052). Diejenigen, die sich prüfen lassen möchten, müssen
sich dort eintragen.
Wie im Modulkatalog unter IN2044
Inhalt:
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, später während der Codeerzeugung finden
bei der Registerverteilung etwa approximative Methoden zur Graphfärbung Verwendung.
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
z.B. Typüberprüfung von Programmen und Typinferenz im Falle, dass die Programmiersprache auch Variablendeklarationen
ohne Typangabe zulässt.
Die Vorlesung wendet sich an StudentInnen des Hauptstudiums.
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