Programmanalysen und Compilerbau

Dozent

Prof. Dr. Erhard Plödereder

Übungen

Eduard Wiebe

Aktuell

(06.05.2005)
Vom 09.05 bis 22.05 läuft die Vorlesungsumfrage . Wir bitten um rege Beteiligung. Vielen Dank (auch an die, die nicht bezahlt wurden)!

Beschreibung

Selektive Vertiefung der Inhalte der "Grundlagen der Programmiersprachen und Übersetzer" für die Realisierung von Programm-Analysen und insbesondere für den Bau von Compilern: Methoden und Realisierung der semantischen Analyse, Symboltabellen, semantische Attributierungen, Umsetzung dynamischer Semantik in Zwischencode, prinzipielle Speichervergabe; Kontroll- und Datenflussanalyse; lokale und globale Optimierungen, Registervergabe, Codeerzeugung; Laufzeitsysteme; separate Übersetzung und Bibliotheksmechanismen.

Anmerkung

Die Vorlesung hiess in der Vergangenheit "Compilerbau". Gegenüber früheren Versionen wird nun verstärkt auf Programmanalysen eingegangen, die z.B. Programmverstehen unterstützen.

Vorraussetzungen

Die Inhalte der Vorlesung "Grundlagen der Programmiersprachen und Übersetzer" ist notwendige Voraussetzung. Grundkenntnisse in der Graphentheorie sind hilfreich.

Literatur

Uwe Kastens: Übersetzerbau, Oldenbourg Verlag (1990)
Robert Morgan: Building an Optimizing Compiler, Butterworth-Heinemann (1998)
Wilhelm, Maurer: Übersetzerbau, 2. Auflage, Springer Verlag, Berlin (1997)
Aho, Sethi, Ullman: Compilers - Principles, Techniques, and Tools Addison, Wesley (1988)

Übungsaufgaben

Übungsblatt Anmerkung Zucker
Blatt-1 (ps | pdf) Die Besprechung findet am 28. April statt.
Blatt-2 (ps | pdf) Die Besprechung findet am 12. Mai statt. C-Code: longjump.c
Blatt-3 (ps | pdf) Die Übung findet am 31.05 statt.
Blatt-4 (ps | pdf) Der Übungsblatt wird am 9.06 besprochen.
Blatt-5 (ps | pdf) Die Übung findet am 23.06 statt.
Blatt-6 (ps | pdf) Die Lösungen werden am 7. Juli besprochen. C++-Code: mi.cc
Implementierung der Mehrfachvererbung für C++