Compilerbau
Covid-19 Information:
Die Veranstaltung findet statt und ist zunächst als Präsenzveranstaltung geplant. Details hierzu werden an alle über Agnes registrierten Teilnehmer*innen versendet.
Wann und Wo
Vorlesung: Montag, 13-15 Uhr, RUD 25, 3.001
Vorlesung: 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 / Alexander Schultheiß
Beschreibung und Aufbau der Lehrveranstaltung
Studierende erlernen die Grundlagen der Analyse und der Übersetzung von Programmiersprachen und wenden diese beim Bau eines einfachen Compilers selbst an.
- 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 |
|||
---|---|---|---|---|---|---|
18.04.22 | Ostermontag | 21.04.22 | V | entfällt, keine Vorlesung | ||
25.04.22 | V | Einführung Compilerbau | 28.04.22 | V | Einführung C/Rust | |
02.05.22 | V | Einführung C/Rust | 05.05.22 | V | Einführung C/Rust | |
09.05.22 | V | Lexikalische Analyse: der Scanner | 12.05.22 | Ü | Stack und Syntree | |
16.05.22 | V | Syntaktische Analyse - Parsing I | 19.05.22 | V |
Syntaktische Analyse – Parsing II Methoden der Syntaxanalyse |
|
23.05.22 | Ü |
Lexing |
26.05.22 | |||
30.05.22 | V |
Syntaktische Analyse – Parsing III Methoden der Syntaxanalyse LL(1)-Parsing |
02.06.22 | V |
Syntaktische Analyse – Parsing IV LR-Parsing – Parsing V Shift-Reduce & Präzedenz-Parsing |
|
06.06.22 | Pfingsten | 09.06.22 | V |
keine Vorlesung |
||
13.06.22 | V |
Syntaktische Analyse – Parsing VI LR/LR(k)-Parsing |
16.06.22 | Ü |
Parsing (Handparser) |
|
20.06.22 | V |
Syntaktische Analyse – Parsing VII LR/LR(k)-Parsing |
23.06.22 | V | Anwendungen des Compilerbau's | |
27.06.22 | V |
Anwendungen des Compilerbau's (Vorlesung wird online via Zoom erfolgen) |
30.06.22 | Ü | Bison-Parser | |
04.07.22 | V | Semantische Bearbeitung | 07.07.22 | V |
Laufzeitumgebung(en) Zusammenfassung |
|
11.07.22 | V | Repetitorium | 14.07.22 | V | keine Vorlesung (Tag der Informatik) |
|
18.07.22 | Ü | Zwischenbesprechung Semantische Analyse | 21.07.22 | Ü | Nachbesprechung Semantische Analyse + 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):
02.08.2022 12.00-15.00 ESZ 0.115
05.10.2022 09.00-12.00 JvN 3.001 (Einlass 08.30)
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