Compilerbau (Compiler construction) (WS19/20)
Course Overview
The lecture introduces concepts and techniques of compiler construction that are required for the development of a compiler. This includes all conceptual phases starting with the lexical analysis to the point of code generation. Additionally, techniques for an efficient automated analysis and processing of hierarchically structured documents should be acquired. Within the exercises, the topics of the lecture are applied to practical examples.
Qualification goals: Knowledge about the concepts and phases of compiler construction and the ability to apply basic techniques of compiler construction to practical problems and to transfer them to other areas.
Prerequisites: Programming in C; basic knowledge about grammars, algorithms, and finite automata
Suggested Literature
- Aho, Sethi, Ullman: Compilers, AddisonWesley, 1986.
- R. Wilhelm und D. Maurer: Übersetzerbau, Springer Verlag, 1997.
- M. Wolfe: High Performance Compilers for Parallel Computing, AddisonWesley, 1996.
- S. Muchnick: Advanced Compiler Design and Implementation, Morgan Kaufmann, 1997.
Übungsblätter/Hausaufgaben
- 1. Übung (Termin: 24. Oktober 2019)
- 2. Übung (Termin: 7. November 2019)
- 3. Übung (Termin: 14. November 2019)einfacher Compiler (einfacher Compiler zur Übersetzung von Infix-Ausdrücken in Postfix-Ausdrücke aus Kapitel 2)
- 4. Übung (Termin: 21. November 2019)
- 5. Übung (Termin: 28. November 2019)
- 6. Übung (Termin: 5. Dezember 2019)
- 7. Übung (Termin: 12. Dezember 2019)
- 8. Übung (Termin: 19. Dezember 2019)
- 9. Übung (Termin: 9. Januar 2020)
- 10. Übung (Termin: 16. Januar 2020)
- 11. Übung (Termin: 23. Januar 2020)
Vorlesungsfolien
- Einleitung (Seiten 1-32; Stand 15.10.2019)
- Entwurf eines einfachen Compilers 1 (Seiten 33-54; Stand 21.10.2019)
- Entwurf eines einfachen Compilers 2 (Seiten 55-78; Stand 30.10.2019)
- Lexikalische Analyse 1 (Seiten 79-108; Stand 23.01.2020)
- Lexikalische Analyse 2 (Seiten 109-138; Stand 23.01.2020)
- Syntaktische Analyse 1 (Seiten 139-188; Stand 23.01.2020)
- Syntaktische Analyse 2 (Seiten 189-236; Stand 23.01.2020)
- Laufzeitverwaltung und Semantische Analyse (Seiten 237-278; Stand 27.01.2020)