Übersetzerbau (ÜB)
  • Wahlpflichtveranstaltung INF-BSc-212 im WiSe 2016/17 für Studierende der Bachelorstudiengänge Informatik und Angewandte Informatik
    Pflicht- bzw. Wahlveranstaltung im Hauptstudium des Diplomstudiengangs Informatik bzw. Angewandte Informatik
  • 2 SWS Vorlesung + 1 SWS Übung = 4 Credits
  • Zur Teilnahme an der Übung bitte unter LSF oder Moodle für diese LV anmelden. Dort stehen alle laufenden Infos, Übungstermine und -aufgaben.
  • Übungsleiter: Jens Lechner
  • Vorlesungstermin: Mo 10:15-11:45 im OH 14, Hörsaal E 23
  • Beginn: 17. 10. 2016
  • Zeitplan:
    • 17. 10. 2016 Mathematische Grundlagen: Mengen, Funktionen, Typen
    • 24. 10. 2016 Mathematische Grundlagen: Signaturen, Terme, Algebren, Faltung und Entfaltung
    • 31. 10. 2016 dto.
    • 07. 11. 2016 Kontextfreie Grammatiken, abstrakte Syntax, JavaLight, JavaState
    • 14. 11. 2016 dto.
    • 21. 11. 2016 Funktoren, Monaden, Parser, generische Compiler
    • 28. 11. 2016 dto.
    • 05. 12. 2016 LL-Compiler
    • 12. 12. 2016 LR-Compiler
    • 19. 12. 2016 Algebren in Haskell, StackCom, JavaStack
    • 09. 01. 2017 dto.
    • 16. 01. 2017 JavaLight + I/O + Deklarationen + Prozeduren
    • 23. 01. 2017 dto.
    • 30. 01. 2017 Monadische Compiler
    • 06. 02. 2017 dto.
  • Kompetenzen: Es werden grundlegende Entwurfs- und Implementierungstechniken zur Erkennung der hierarchischen Struktur symbolischer Objekte und deren semantikerhaltender Übersetzung vermittelt. In diesem Kerngebiet der Informatik haben sich Theorie und Praxis schon immer stark gegenseitig beeinflusst. Während die Theorie formaler Sprachen vor allem die Entwicklung von Parsern vorangetrieben hat, sind es die zentralen Konzepte der universellen Algebra und funktionalen Programmierung, die es erlauben, komplette Compiler modular und generisch aufzubauen. Deren Prinzipien, Handhabung und Anpassbarkeit bilden das vorrangige Lernziel.
  • Folien-Skript
  • weitere Materialien
  • Literaturempfehlungen (Compiler und Formale Sprachen)
  • Literaturempfehlungen (Algebra in der Informatik)
    • Ehrig, Mahr, Cornelius, Große-Rhode, Zeitz, Mathematisch-strukturelle Grundlagen der Informatik, Springer-Verlag 1999 (in der Lehrbuchsammlung unter L Sr 436/2)
    • Einige für den algebraischen Zugang zum Compilerbau grundlegende Arbeiten sind am Ende der Folien Übersetzerbau aufgelistet.
    • Einführende Arbeiten über Coalgebren sind hier zu finden.
  • Haskell-Lehrbücher und -Tutorials: siehe LV Funktionale Programmierung
  • hackageDB: Haskell-Bibliotheken und -Werkzeuge
  • Haskell-Module (werden zum Teil in der Vorlesung behandelt)
    • Painter: Funktionen zur graphischen - auch animierten - Wiedergabe von Texten, Bäumen und Graphen in SVG- bzw. HTML-Dateien. Zur Einführung in SVG werden die Folien von Thomas Meinike sowie selfsvg empfohlen.
    • Compiler.hs: Compiler, binäre Bäume, reguläre Ausdrücke, Moore-Automaten, Compiler für reguläre Ausdrücke, Parser für reguläre Sprachen und CFGs, Compiler für SAB und XMLstore (gehört zum Painter-Paket)
    • Java.hs: JavaLight-Compiler und -Zielsprachen
    • Java2.hs: JavaLight+-Compiler und die Zielsprache StackCom* mit I/O und Kelleradressierung
    • Examples.hs: Verschiedenes
    • PreludeHugs.hs: Prelude des hugs-Interpreters (stimmt größtenteils mit dem ghci-Prelude überein)
    • Cbau.hs: Programme aus dem alten Skript
  • Vorlesungsfolien von 2007
  • Vorlesungsfolien von 2005 bzw. 2006: Kap. 1+2 Kap. 3 Kap. 4 Kap. 5 Kap. 6 des alten Skripts
  • JFLAP: a tool for experimenting with formal languages