Übersetzer und sprachverarbeitende Werkzeuge
Informationen zu dieser Vorlesung sind im KIS und im Modulhandbuch zu finden.
Die Vorlesung wird auf Deutsch gehalten.
Inhalte der Vorlesung
- Spezifikation der Syntax von formalen Beschreibungssprachen
- lexikalische Analyse: Scannen, Scannergenerierung, Anwendung von Scannergeneratoren
- kontextfreie Analyse: Parsen, Parsergenerierung, Anwenden von Parsergeneratoren
- Arbeiten mit abstrakter Syntax
- kontextabhängige Analyse: Namensanalyse, Typanalyse, Attributierungstechniken und -werkzeuge
- Verarbeitung von XML-Dokumenten
- Übersetzungstechniken für prozedurale und objektorientierte Sprachen
- Zwischensprachen in der Übersetzung
- semantische Analyse und Optimierungstechniken
- Befehlsauswahl
- Registerzuweisung
- Kodegenerierung
- automatische Speicherverwaltung
Personen
Frau Dr. Ina Schaefer wird die Vorlesung halten. Dipl.-Inf. Jean-Marie Gaillourdet wird die Übungen halten.
Organisatorisches
- Die Vorlesung findet montags und mittwochs von 10.00 Uhr - 11.30 Uhr in Raum 48-462 statt. Die erste Vorlesung findet am Montag den 20. April statt.
- Die praktischen Übungen werden dienstags um 17.15 Uhr in Raum 32/439 statt. Die erste Übung ist am 28.4.2009.
- Frau Schaefer bietet eine Sprechstunde bei Fragen zur Vorlesung während der Vorlesungszeit am Dienstag von 9 - 10 Uhr in Raum 32/430 an. Am 9.6., 23.6.,14.7. und 21.7. findet keine Sprechstunde statt. Bitte vereinbaren Sie einen Termin nach Bedarf.
- Der erste Termin für die mündliche Prüfung ist der 20. August. Wenn Sie an diesem Tag geprüft werden wollen, melden Sie sich bitte bis zum 15. Juli per Email oder persönlich bei Frau Stengel an. Weitere Prüfungstermine sind nach Absprache möglich.
Literatur
A. Appel: Modern Compiler Implementation in Java, Cambridge University Press, 2002 (2nd edition), INF 466/120
Wilhelm, R.; Maurer, D.: Übersetzerbau: Theorie, Konstruktion, Generierung, Springer, 1992. INF 466/109
Weitergehende Literatur zur Veranstaltung finden Sie auf folgender Webseite.
Kurzpräsentationen
Titel | Vortragender | Termin | |
---|---|---|---|
SprachhierarchieundAutomaten | Jan Bormann | 29.4. | |
LL-Parsergenerator ANTLR (Demo) | Raphael Reitzig | 6.5. | |
Syntaxhighlighting | Laura Zilles | 27.5. | |
Geschichte und Verwendung vonMIPS | DanielSchneider | 8.6. | |
LLVM - eine Zwischensprache | Adrian Willenbücher | 24.6. | |
GCC - Systemüberblick | Cornelius Moucha | 10.6. | |
(2) Esoterische Programmiersprachen, z.B. Ook, Chef… | Raphael Reitzig (15.6.) und Markus Engel (8.6.) | 8.6. / 15.6. | |
Parrot.org (a Virtual Machine e.g. for Perl) | Michael Arndt | 24.6. | |
Optimierungen in existierenden Compilern | Michael Geilke | 1.7. | |
Garbage Collection in der JVM | Artun Subasi | 20.7. | |
Geschichte von XML | Laura Zilles | 13.7. |
Unterlagen
Organisatorisches
Folien zur Organisation der Lehrveranstaltung vom 20.04.2009 Download
Vorlesungsfolien
1 | Introduction | Vorlesung am 20.4. / 22.4. | Folien | 2 Folien pro Seite | ||
---|---|---|---|---|---|---|
2 | Lexical Analysis | Vorlesung am 22.4. / 27.4. | Folien | 2 Folien pro Seite | (korrigierte Fassung!) | |
3 | Context-Free Analysis (Teil 1) | Vorlesung am 27.4. / 29.4./ 4.5 | Folien | 2 Folien pro Seite | ||
4 | Context-Free Analysis (Teil 2) | Vorlesung am 4.5. / 6.5. / 11.5. / 18.5. | Folien | 2 Folien pro Seite | ||
5 | Context-Dependent Analysis (Teil 1 - Name Analysis) | Vorlesung am 18.5. / 20.5. / 27.5. | Folien | 2 Folien pro Seite | ||
6 | Context-Dependent Analysis (Teil 2 - Type Analysis) | Vorlesung am 27.5. | Folien | 2 Folien pro Seite | KombinierterFoliensatz als !PostScript | |
7 | Translation of Imperative Constructs | Vorlesung am 8.6. / 10.6. / 15.6. / 17.6. | Folien | 2 Folien pro Seite | ||
8 | Translation of Object-Oriented Constructs | Vorlesung am 17.6. / 22.6. | Folien | 2 Folien pro Seite | ||
9 | Selected Aspects of Compilers (Teil 1 - Intemediate Languages, Optimization, Data Flow Analysis) | Vorlesung am 24.6. / 29.6. / 1.7. | Folien | 2 Folien pro Seite | (korrigierte und erweiterte Fassung der Folien 1-33 ) | |
10 | Selected Aspects of Compilers (Teil 2 - Register Allocation, Code Generation) | Vorlesung am 6.7. | Folien | 2 Folien pro Seite | ||
11 | Garbage Collection | Vorlesung am 20.7. | Folien | 2 Folien pro Seite | (korrigierte Fassung, Graphik Folie 29 ) | |
12 | XML Processing | Vorlesung am 13.7./15.7. | Folien | 2 Folien pro Seite |
Zusätzliche Materialen zur Vorlesung
1 | Beweis für Nicht-LL(k)-Eigenschaft von CFG (Context-Free Analysis 1, Folie 45) | Download | |
---|---|---|---|
2 | Ausführlicher Beweis zur LR(0) Charakterisierung (Context-Free Analysis 2, Folie87) | Download | |
3 | Folien zu Katja | Download | |
4 | 2. Satz Folien zu Katja | Download | |
5 | L-attributed Grammars | Download | |
6 | MIPS Beispielprogramm | Download | |
7 | Lernzieltaxonomie | Download | |
8 | Zusatzfolien zu Optimizing Compilers | Download | |
9 | Zusatzfolien zu Data Flow Analysis | Download |
Fragenkatalog
Die Studierenden erarbeiten während der Veranstaltung einen Katalog von Prüfungsfragen.
1 | Fragenkatalog zu den Kapiteln 1 und 2 | Download | |
---|---|---|---|
2 | Fragenkatalog zu Kapitel 3 | Download | |
3 | Fragenkatalog zu Kapitel 4 und 6 | Download | |
4 | Fragenkatalog zu Kapitel 5 | Download | |
5 | Gesamter Fragenkatalog zur Vorlesung | Download |
Übungsaufgaben
1 | Ausgabe am 20. April | Übungsblatt 1Ex1.java | |
---|---|---|---|
2 | Ausgabe am 27. April | Übungsblatt 2 | |
3 | Ausgabe am 4. Mai | Übungsblatt 3 | |
4 | Ausgabe am 11. Mai | Übungsblatt 4 | |
5 | Ausgabe am 18. Mai | Übungsblatt 5 MiniJava.katja | |
6 | Ausgabe am 25. Mai | Übungsblatt 6 | |
7 | Ausgabe am 8. Juni | Übungsblatt 7 | |
8 | Ausgabe am 15. Juni | Übungsblatt 8 | Framework fürs Backend |
9 | Ausgabe am 22. Juni | Übungsblatt 9 | |
10 | Ausgabe am 29. Juni | Übungsblatt 10 | |
11 | Ausgabe am 6. Juli | Übungsblatt 11 | SSA.katja |
12 | Ausgabe am 13. Juli | Übungsblatt 12 | Kunden.xml |
Zusätzliche Materialien zur Übung
MiniJava-Beispiele
Folien zu Subtyping und Java Generics
Framework fürs Backend