News
- 02.06.2022: We are online!
- 13.10.2022: We shifted the dates and rooms for the lecture.
Schedule
Type | Day | Time | Room | Start | Lecturer |
---|---|---|---|---|---|
Lecture | Mon | 14:30-16:00 | Aula 1 | Oct 17 | Noll |
Fri | 12:30-14:00 | Roter (AM) | Oct 21 | Noll | |
Exercise | Wed | 14:30-16:00 | AH 2 | Oct 26 | Batz, Fesefeldt |
Contents
The goal of this course is to introduce foundational methods and techniques for implementing compilers for high-level (procedural) programming languages. The following topics will be discussed:
- Lexical analysis of programs (Scanner)
- Syntactic analysis of programs (Parser)
- Semantic analysis of programs
- Code generation
- Tools for compiler construction
Prerequisites
Basic knowledge of the relevant undergraduate courses of the first two years is required:
- Programming (essential concepts of imperative and object-oriented programming languages and elementary programming techniques)
- Data structures and algorithms (lists, stacks, queues, trees and associated algorithms)
- Formal languages and automata theory (regular and context-free languages, finite and pushdown automata)
Additional background literature
- A. Aho, M.S. Lam, R. Sethi, J.D. Ullman: Compilers – Principles, Techniques, and Tools; 2nd ed. Addison-Wesley, 2007.
- A.W. Appel, J. Palsberg: Modern Compiler Implementation in Java. Cambridge University Press, 2002.
- D. Grune, H.E. Bal, C.J.H. Jacobs, K.G. Langendoen: Modern Compiler Design. Wiley & Sons, 2000.
- R. Wilhelm, D. Maurer: Übersetzerbau, 2. Auflage. Springer, 1997.
Interesting Links
- General:
- Wikipedia: Compiler [English/German]
- Free Compiler Construction Tools
- Lexical Analysis:
- Syntax Analysis: