Übersetzerbau
Vorlesung Übersetzerbau (3+1 SWS mit KP 5)
Prof. Dr. Wolf Zimmermann
Klausurtermine
Ort, Zeit
Vorlesung: Do 10-12 Uhr, HS 3.31
Übung: Fr. 10-12 Uhr, HS 3.31 (14 täglich im Wechsel mit Vorlesung)
Vorlesungsinhalte
Ziel der Vorlesung ist die Vermittlung von Grundlagen und Techniken zum Erbauen von Übersetzern (engl. Compiler). Diese Techniken sind nicht nur im Übersetzerbau einsetzbar, sondern generell, wenn textuelle oder visuelle Eingaben verarbeitet werden müssen - insbesondere, wenn auch deren Konsistenz vor einer Weiterverarbeitung überprüft werden muss.
Übersetzer können bereits seit den 80er Jahren des vergangenen Jahrhunderts automatisch aus Spezifikationen erzeugt werden. Die Vorlesung behandelt daher in erster Linie die theoretischen Grundlagen der Spezifikationen, die Grundlagen der Generierung sowie das Erstellen solcher Spezifikationen. In den Übungen werden sowohl die Grundlagen vertieft als auch ein (kleiner) Übersetzer mit Hilfe eines Übersetzergenerators gebaut.
Inhalt:
- Einleitung/Architektur von Übersetzern
- Eigenschaften von Programmiersprachen
- Reale und abstrakte Maschinen
- Abstrakte Programmrepräsentationen
- Grundlagen aus der Theorie formaler Sprachen
- Lexikalische Analyse
- Syntaktische Analyse
- Attributierte Grammatiken
- Semantische Analyse
- Zwischencodeerzeugung
- Codeerzeugung
- Optimierung
Teilnahmevoraussetzungen
Folien
Allgemeines
slides-4.pdf
(externe Datei)
Kapitel 1: Einleitung
einleitung-4.pdf
(externe Datei)
Kapitel 2: Spracheigenschaften
sprach-4.pdf
(externe Datei)
Kapitel 3: Maschineneigenschaften
maschine-4.pdf
(externe Datei)
Kapitel 4: Datenstrukturen im Übersetzerbau
datenstrukturen-4.pdf
(externe Datei)
Kapitel 5: Formale Systeme
formalesysteme-4.pdf
(externe Datei)
Kapitel 6: Lexikalische Analyse
lexik-4.pdf
(externe Datei)
Kapitel 7: Syntaxanalyse
syntax-4.pdf
(externe Datei)
Kapitel 8: Attributierte Grammatiken
ag-4.pdf
(externe Datei)
Kapitel 9: Semantische Analyse
semantik-4.pdf
(externe Datei)
Kapitel 10: Zwischencodeerzeugung
zwischencode-4.pdf
(externe Datei)
Kapitel 11: Codeerzeugung
code-4.pdf
(externe Datei)
Übungen
Übungsserie 1
uebung01.pdf
(externe Datei)
Übungsserie 2
uebung02.pdf
(externe Datei)
Übungsserie 3
uebung03.pdf
(externe Datei)
Übungsserie 4
uebung04.pdf
(externe Datei)
Übungsserie 5
uebung05.pdf
(externe Datei)
Übungsserie 6
uebung06.pdf
(externe Datei)
Übungsserie 6: hallesa-ebnf.specs
hallesa-ebnf.specs
(externe Datei)
Übungsserie 6: hallesa-ebnf.con
hallesa-ebnf.con
(externe Datei)
Übungsserie 6: hallesa.gla
hallesa.gla
(externe Datei)
Übungsserie 7
uebung07.pdf
(externe Datei)
Übungsserie 7: hallesa.con
hallesa.con
(externe Datei)
Übungsserie 7: hallesa.lido
hallesa.lido
(externe Datei)
Übungsserie 8
uebung08.pdf
(externe Datei)
Übungsserie 8: hallesa.map
hallesa.map
(externe Datei)
Übungsserie 8: hallesa.pdl (Vorlage mit Hilfen)
hallesa.pdl
(externe Datei)
Sonstige Materialien
Buch: Waite/Goos: Compiler Construction
CompilerConstruction-2-in-1.pdf
(externe Datei)
- Eli-Dokumentation
- Eli-Dokumentation (alternativer Link)
- in Eli implementierte Übersetzer: http://ag-kastens.uni-paderborn.de/eli/examples/eli_examplesD.html
