Ü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 (korrigierte Fassung der Folien 1-12)
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 (korrigierter Foliensatz)
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