Compilerbau (WS19/20)
Vorlesungsinhalt
Die Vorlesung stellt Konzepte und Techniken des Compilerbaus vor, die für die Entwicklung eines Compilers notwendig sind. Dabei werden alle konzeptionellen Phasen eines Compilers von der lexikalischen Analyse bis hin zur Codegenerierung angesprochen. Darüber hinaus sollen Techniken zur effizienten automatisierten Analyse und Bearbeitung hierarchisch strukturierter Dokumente erlernt werden. In den Übungen werden die Inhalte der Vorlesung praktisch angewendet.
Qualifikationsziele: Kenntnisse der Konzepte und Phasen des Compilerbaus sowie die Fähigkeit, grundlegende Techniken des Compilerbaus praktisch anzuwenden und auf andere Bereiche zu übertragen
Vorkenntnisse: Programmierkenntnisse in C; Grundlegende Kenntnisse in Grammatiken, Algorithmen und endlichen Automaten
Literaturempfehlungen
- 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)