Compilerbau
Wann und Wo
Vorlesung: Montag, 13-15 Uhr, RUD 25, 3.001
Donnerstag, 13-15 Uhr (14tgl./1), RUD 25, 3.001
Übung: Donnerstag, 13-15 Uhr (14tgl./2), RUD 25, 3.001
Wer
Dozent: Prof. Grunske / Dr. Klaus Ahrens
Beschreibung und Aufbau der Lehrveranstaltung
Die Teilnehmer bekommen einen Überblick zu nachfolgenden Themenschwerpunkten:
- Architektur und Aufgaben eines Compilers
- Anwendung der Theorie der Automaten (endliche Automaten, Kellerautomaten) auf Probleme des Übersetzerbaus
- Lexikalische Analyse
- Konzepte und Techniken des Parsings
- Semantische Analyse (inkl. Typerkennung, -verträglichkeit, Gültigkeitsbereiche, Abhängigkeitsanalyse)
- Konzepte der Speicherorganisation
- Grundlagen Codegenierung (insbesondere abstrakter Maschinencode)
- Optimierungstechniken im Überblick
Terminplanung bis Semesterende (Änderungen möglich)
Mo, 13.00-15.00 | Thema | Do, 13.00-15.00 | Thema | |||
---|---|---|---|---|---|---|
08.04.19 | 11.04.19 | V | Einführung Compilerbau / Einführung C | |||
15.04.19 | V | Einführung C | 18.04.19 | V | Einführung C | |
22.04.19 | Ostermontag | 25.04.19 | V | Einführung C | ||
29.04.19 | V | Lexikalische Analyse: der Scanner | 02.05.19 | |||
06.05.19 | Ü | Stack und Syntree | 09.05.19 | V |
Syntaktische Analyse - Parsing I |
|
13.05.19 | V |
Syntaktische Analyse – Parsing II Methoden der Syntaxanalyse |
16.05.19 | Ü | C1 und HTML-Scanner | |
20.05.19 | V |
Syntaktische Analyse – Parsing III Methoden der Syntaxanalyse LL(1)-Parsing |
23.05.19 | V |
Syntaktische Analyse – Parsing IV LR-Parsing |
|
27.05.19 | Ü | Handparser | 30.05.19 | |||
03.06.19 | V |
Syntaktische Analyse – Parsing V Shift-Reduce & Präzedenz-Parsing |
06.06.19 | V |
Syntaktische Analyse – Parsing VI LR/LR(k)-Parsing |
|
10.06.19 | 13.06.19 | V | Anwendungen des Compilerbau's | |||
17.06.19 | V |
Syntaktische Analyse – Parsing VII LR/LR(k)-Parsing |
20.06.19 | Ü | Bison-Parser | |
24.06.19 | V | Semantische Bearbeitung | 27.06.19 | V |
Repetitorium |
|
01.07.19 | V | Laufzeitumgebung(en) und Codegenerierung & Optimierung |
04.07.19 | Ü | Semantische Analyse | |
08.07.19 | V | Zusammenfassung und Q&A | 11.07.19 | Ü | Klausurvorbereitung |
Voraussetzungen und Prüfung
Die Lehrveranstaltung wird mit einer 150-Minuten-Klausur geprüft.
Für die Zulassung zur Prüfung ist ferner die Teilnahme am Übungsbetrieb verpflichtend.
Klausurtermin (150 min):
Di., 23.07.2019, 12-15 Uhr (Beginn: 12:30 Uhr), RUD 26, Raum 0'115
Wdh.: Di., 01.10.2019, 12-15 Uhr (Beginn: 12:30 Uhr), RUD 26, Raum 0'115
Skript und Übungsaufgaben
Das Skript zu dieser Veranstaltung (Folien), Übungsblätter und weitere Materialien werden sukzessive in Moodle bereitgestellt.
Im Verlauf des Semesters werden größere Übungsaufgaben gestellt, die sich an den Inhalten der Vorlesung orientieren. Übungsaufgaben und evt Lösungsvorschläge werden ebenfalls über Moodle verfügbar sein.
Literatur
- Kernighan, Ritchie: The C Programming Language, Prentice Hall, 2. Auflage, 1988, 1990
- Aho, Sethi, Ullman: Compilers: Principles, Techniques und Tools, Addison-Wesley Publishing Company, 2. Auflage, 2007 (bekannt als „Drachenbuch“)
- Wilhelm, Maurer: Übersetzerbau: Theorie, Konstruktion, Generierung, Springer Verlag, 2. Auflage
- Fischer/LeBlanc: Crafting a Compiler with C, The Benjamin Cummings Publishing Company, 1991