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.
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.
Die Inhalte der Vorlesung "Grundlagen der Programmiersprachen und Übersetzer" ist notwendige Voraussetzung. Grundkenntnisse in der Graphentheorie sind hilfreich.
| Übungsblatt | Anmerkung | Zucker |
| Blatt-1 (ps | pdf) | Die Besprechung findet am 28. April statt. |
Lösungsvorschlag
(ps | pdf) Ada-Code zur Spezifikation (tgz | zip) |
| Blatt-2 (ps | pdf) | Die Besprechung findet am 12. Mai statt. |
Lösungsvorschlag
(ps | pdf) C-Code: longjump.c |
| Blatt-3 (ps | pdf) | Die Übung findet am 31.05 statt. | Lösungsvorschlag: (ps | pdf) |
| Blatt-4 (ps | pdf) | Der Übungsblatt wird am 9.06 besprochen. | Lösungsvorschlag: (ps | pdf) |
| Blatt-5 (ps | pdf) | Die Übung findet am 23.06 statt. | Lösungsvorschlag: (ps | pdf) |
| Blatt-6 (ps | pdf) | Die Lösungen werden am 7. Juli besprochen. |
Lösungsvorschlag:
(ps | pdf) C++-Code: mi.cc Implementierung der Mehrfachvererbung für C++ |