News
- 11.02.2025: We are online!
Schedule
Type | Day | Time | Room | Start | Lecturer |
---|---|---|---|---|---|
Lecture | Tue | 12:30-14:00 | AH 3 | April 8 | Noll |
Wed | 14:30-16:00 | AH 3 | April 9 | Noll | |
Exercise | Fri | 12:30-14:00 | AH 2 | April 18 | Hermanns, Zilken |
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: