Compilerbau
Sommersemester 2021
4 SWS
Prof. Dr. Timo Kehrer,
Covid-19 Information:
Sowohl die Vorlesung als auch die Übungen finden statt. Sie werden als synchrone Online-Veranstaltungen via Zoom zu den regulären Zeiten (s. unten) durchgeführt. Details hierzu werden an alle via Agnes registrierten Teilnehmer*innen versendet. Sollten Sie keine Informationen bekommen haben und dennoch am Kurs teilnehmen wollen, können Sie die Informationen auch per E-Mail erfragen. Bitte nutzen Sie dazu ihre HU E-Mail Adresse.
Klausur
Termine:
- Erstversuch: Do, 19.08., 9:00
- Zweitversuch: Mi, 29.09., 9:00
Ob die Klausur digital oder in Präsenz stattfindet kann erst kurzfristig entschieden werden und hängt von den geltenden Hygiene-Auflagen ab.
Vorkurs Programmieren in C:
Für die Übungen der Veranstaltung Compilerbau werden Kenntnisse in der Programmierung in C vorausgesetzt werden. Diesbezüglich sei an dieser Stelle nochmals auf den Vorkurs "Programmieren in C" hingewiesen, welcher vom 6. bis zum 9. April 2021 von 11:00 Uhr bis 16:30 Uhr online via Zoom und Moodle stattfinden wird und dabei folgende Themen behandelt:
- Infrastruktur
- Speichermodell
- Datentypen
- Kontrollfluss
- Modularisierung
- Standardbibliothek
- Metaprogrammierung
Vorlesung | Mo./Do.(14-tg.), 13-15 | ||
Übungen | |||
Übungsgruppe (a) |
Di.(14-tg.), 13-15 | ||
Übungsgruppe (b) |
Mi.(14-tg.), 13-15 | ||
Übungsgruppe (c) |
Do.(14-tg.), 13-15 | ||
Übungsgruppe (d) |
Do.(14-tg.), 15-17 |
Inhalte
- 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 abstrakten Maschinencode)
- Optimierungstechniken im Überblick
Terminplanung Vorlesung (Änderungen möglich)
Mo, 13.00-15.00 | Thema | Do, 13.00-15.00 | Thema | |||
---|---|---|---|---|---|---|
12.04.21 | 15.04.21 | V |
Einführung und Organisation Lexikalische Analyse I |
|||
19.04.21 | V | Lexikalische Analyse II | 22.04.21 | Ü | ||
26.04.21 | V | Syntaktische Analyse - Parsing I | 29.04.21 | V |
Syntaktische Analyse – Parsing II LL(1)-Parsing: Rekursiver Abstieg |
|
03.05.21 | V |
Syntaktische Analyse – Parsing III LL(1)-Parsing: Prädiktiv |
06.05.21 | Ü | ||
10.05.21 | V | Syntaktische Analyse – Parsing IV LR-Parsing: Grundprinzipien |
13.05.21 | |||
17.05.21 | V | Syntaktische Analyse – Parsing V LR-Syntaxanalyseverfahren |
20.05.21 | Ü | ||
24.05.21 | 27.05.21 | V |
Syntaktische Analyse – Parsing VI |
|||
31.05.21 | V | Syntaktische Analyse – Parsing VII Kanonisches LR und LALR |
03.06.21 | Ü | ||
07.06.21 |
V |
Semantische Bearbeitung I |
10.06.21 | V | Repetitorium | |
14.06.21 | V | Repetitorium | 17.06.21 | Ü | ||
21.06.21 | V | Semantische Bearbeitung II | 24.06.21 | |||
28.06.21 | V | Codegenerierung | 01.07.21 | Ü | ||
05.07.21 | V | Optimierungsansätze | 08.07.21 | V | Zusammenfassung und Q&A / Klausurvorbereitung | |
12.07.21 | V | Zusammenfassung und Q&A / Klausurvorbereitung | 15.07.21 | Ü |
Terminplanung Übungen (Änderungen möglich)
- Woche vom 19.4. bis 23.4.
Einführung und Organisation
Ausgabe: Stack und Syntree
- Woche vom 3.5. bis 7.5.
Besprechung: Stack und Syntree
Ausgabe: C1 und HTML-Scanner
- Woche vom 17.5. bis 21.5.
Besprechung: C1 und HTML-Scanner
Ausgabe: Handparser
- Woche vom 31.5. bis 4.6.
Besprechung: Handparser
Ausgabe: Bison-Parser
- Woche vom 14.6. bis 18.4.
Besprechung: Bison-Parser
Ausgabe: Semantische Analyse
- Woche vom 28.6. bis 2.7.
Besprechung: Semantische Analyse
Ausgabe: Interpreter
- Woche vom 12.7. bis 16.7.
Besprechung: Interpreter
Literatur
- Aho, Sethi, Ullman: Compilers: Principles, Techniques und Tools, Addison-Wesley Publishing Company, 2. Auflage, 2007 (bekannt als „Drachenbuch“)
- Kernighan, Ritchie: The C Programming Language, Prentice Hall, 2. Auflage, 1988, 1990
- Wilhelm, Maurer: Übersetzerbau: Theorie, Konstruktion, Generierung, Springer Verlag, 2. Auflage
- Fischer/LeBlanc: Crafting a Compiler with C, The Benjamin Cummings Publishing Company, 1991