Übersetzerbau
Sommersemester 2008
Lehrstuhl für Programmiersprachen und Übersetzerkonstruktion
Hauptstudium
Nr. |
Art |
Termine |
Raum |
Veranstalter |
080196 |
V4 |
Di 12:15 - 14:00 |
LMS2 - R.Ü1 |
Hanus |
|
|
Do 10:15 - 12:00 |
LMS2 - R.Ü1 |
|
080096 |
Ü2 |
Mi 16:15-17:45 |
CAP3-R.I |
Hanus |
Vorlesungsbeginn
Dienstag, 15.4.2008, 12:15 Uhr, Sem-Ü1
Zielgruppe
Studierende im Hauptstudium des Studiengangs Diplominformatik,
des Bachelor- oder Masterstudiengangs Informatik
sowie Studierende mit Nebenfach Informatik
Voraussetzungen
Grundstudium (1.-4. Semester) in Informatik
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
Ergänzende Materialien zur Vorlesung
-
15.4.08: Folien zur Einführung (PDF)
-
15.4.08: Programm zur Darstellung von Simple-Programmen
(Haskell-Programm)
-
29.4.08: Recursive Descent Parser für eine einfach Anweisungssprache
(Haskell-Programm)
-
27.5.08: Happy-Spezifikation eines Simple-Interpreters für Zuweisungen
(Happy-Spezifikation)
-
29.5.08: Happy-Spezifikation eines Simple-Interpreters mit Ausgaben
(Happy-Spezifikation)
-
12.6.08: Modul zur Definition abstrakter Ausdrucksbäume als Zwischensprache
(IRTree.hs)
Literatur
-
A. Aho, R. Sethi, J.Ullman: Compilerbau (Teil 1 + 2),
Oldenbourg, 1999
-
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: Compilerbau - Eine Einführung, Teubner, 1986
Prüfung
Die Modulprüfung für Bachelor- und Masterstudierende
findet am Donnerstag, 24.7.2008, statt. Die genauen Prüfungszeiten
werden noch individuell vereinbart.
Die Scheinprüfung für Diplomstudierende findet am gleichen Tag oder,
je nach Bedarf, auch am 25.7.2008 statt.
Übungen
Viele der praktischen Rechnerübungen werden in der funktionalen
Programmiersprache Haskell implementiert.
Diese Programmiersprache wird im Rahmen der Vorlesung und Übung
eingeführt (s.u.).
Informationen zu Haskell
Zu Beginn der Vorlesung wird eine kurze Einführung in die
Programmiersprache Haskell gegeben, die sich an die
Einführung aus der Vorlesung "Funktionale Programmierung" aus dem
Sommersemester 2005 anlehnt. Materialien hierzu:
Neben der Einführung in den Übungen gibt es auch im Netz
viele weitere Informationen zu
Haskell. Für den Einsteiger eignet sich insbesondere das
Haskell Tutorium.
In den Übungen werden wir den Haskell Interpreter Hugs verwenden, welcher
frei verfügbar ist.
Auf den Rechnern des Instituts steht Haskell ebenfalls zur Verfügung.
Sowohl der Glasgow Haskell Compiler (ghc), als auch der Interpreter
Hugs befindet sich unter "/home/haskell". Nach
Hinzunahme des Verzeichnisses "/home/haskell/bin" in die Umgebungsvariable
"PATH" kann Hugs mit dem Befehl "hugs" gestartet
werden.
Michael Hanus