Modul Übersetzerbau

Wintersemester 2014/15
Arbeitsgruppe Programmiersprachen und Übersetzerkonstruktion

Nr. Art Termine Raum Veranstalter
080132 V4 Mo 14:15 - 15:45 CAP3 - Hörsaal 1 Hanus
    Do 10:15 - 11:45 CAP3 - Hörsaal 1  
080135 Ü2 Mi 14:15 - 16:00 CAP3 - Hörsaal 1 Hanus, Peemöller

Vorlesungsbeginn

Montag, 27.10.2014, 14:15 Uhr, CAP3 - Hörsaal 1

Zielgruppe

Studierende in den Masterstudiengängen Informatik und Wirtschaftsinformatik sowie Studierende mit Nebenfach Informatik

Voraussetzungen

Grundstudium (1.-4. Semester) in Informatik, insbesondere Module Programmierung und Fortgeschrittene Programmierung (das Skript zu dieser Vorlesung ist hier innerhalb der CAU zugreifbar)

Inhalt

Die Übersetzung von Programmiersprachen ist eine wohldefinierte aber dennoch komplexe Aufgabe. Zur Beherrschung dieser Komplexität wurde eine Zerlegung in einzelne Übersetzungsaufgaben entwickelt, die heute in dieser oder ähnlicher Form in den meisten Übersetzern verwendet wird. In dieser Vorlesung werden die einzelnen Übersetzungsaufgaben und die bekannten Lösungsansätze dazu vorgestellt. Im Einzelnen werden behandelt:

  • Programmiersprachen, Interpreter, Übersetzer
  • Lexikalische Analyse
  • Syntaktische Analyse
  • Semantische Analyse
  • Codeerzeugung

Modulprüfung

Am Ende der Vorlesung findet eine mündliche Abschlussprüfung statt. Die ersten mündliche Prüfung zur Vorlesung finden am 18.2.2015, 24.2.2015 und 4.3.2015 statt. Die zweite mündliche Prüfung ist für den 9.4.2015 geplant. Alle Prüfungen finden als Zweier-Gruppenprüfung im Raum 706 (CAP4) statt. Zu einer der Prüfungen muss man sich über die Prüfungsanmeldung anmelden, um eine genaue Prüfungszeit festzulegen. Da jede Gruppenprüfung 40 Minuten dauert und man sich aber individuell (in 20-Minuten-Slots) anmeldet, sollte man 20 Minuten vor seinem Prüfungstermin anwesend sein, um an der Prüfung teilzunehmen.

Ergänzende Materialien zur Vorlesung

Es gibt kein ausführliches Skript zur Vorlesung, aber die Notizen zur Vorlesung (die während des Semester leicht überarbeitet werden) sind im PDF-Format verfügbar (nur innerhalb der CAU Kiel zugreifbar!) und beinhaltet den ungefähren Vorlesungsverlauf. Daher sollte neben dem Lesen des Skripts auch immer die Vorlesung besucht werden, um über den aktuellen Stand informiert zu sein!

Folien und Programme:

27.10.2014: Einführungsfolien (PDF) Darstellung von Simple-Programmen in Haskell
10.11.2014: Recursive Descent Parser für eine einfach Anweisungssprache ...mit Parserkombinator
17.11.2014: Recursive Descent Parser für Ausdrücke mit Fehlerausgabe
27.11.2014: Happy-Spezifikation eines Ausdrucksparsers Happy-Spezifikation eines Ausdrucksparsers mit Konflikten Happy-Spezifikation eines Ausdrucksparsers mit gelösten Konflikten
4.12.2014: Happy-Spezifikation eines Simple-Interpreters für Zuweisungen Happy-Spezifikation eines Simple-Interpreters mit Ausgabe
8.12.2014: Happy-Spezifikation eines Simple-Parsers mit AST-Erzeugung

Übungen

In den begleitenden Übungen wird für praktische Programmieraufgaben die Sprache Haskell eingesetzt, für die es frei verfügbare Implementierungen für Unix- und Linux-Systeme gibt.

Literatur

  • A. Aho, M. Lam, R. R. Sethi, J.Ullman: Compiler - Prinzipien, Techniken und Werkzeuge (2. Auflage), Pearson Education, 2008
  • A. Aho, M. Lam, R. Sethi, J.Ullman: Compilers: principles, techniques, and tools (2nd ed.), Pearson Education, 2007
  • A. Appel: Modern compiler implementation in ML, Cambridge UP, 1997
  • R.H. Güting, M. Erwig: Übersetzerbau, Springer 1999
  • W. Waite, G. Goos: Compiler Construction, Springer, 1984
  • R. Wilhelm, D. Maurer: Übersetzerbau: Theorie, Konstruktion, Generierung, Springer, 1992
  • N. Wirth: Grundlagen und Techniken des Compilerbaus, Oldenbourg, 2008
Weitere Literatur wird in der Vorlesung bekanntgegeben.