- 19.10.2020: the RWTHmoodle classroom is available.
- 18.09.2020: we are online!
|Lecture||Thu||[12:30 – 14:00] Slidecast||29 Oct||Noll|
|Fri||[14:30 – 16:00] Slidecast||30 Oct||Noll|
|Exercise||Wed||14:30 – 16:00 Video conference||04 Nov||Batz, Fesefeldt|
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
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)
Due to the Corona virus outbreak, no in-class meetings are currently possible. All course-related material will therefore be made accessible in electronic form via an RWTHmoodle classroom:
- At the dates that are foreseen for lectures (or earlier), slidecasts will be made available.
- Starting Nov 4, assignment sheets are made available weekly, with a submission deadline of one week.
- Paper submissions are not accepted; everything has to be (scanned and) submitted via RWTHmoodle.
- The presentations of sample solutions will be organised as video conferences on the date of the exercise class (one week after the publication of the assignment sheet).
- Exercises are optional, i.e., not required for admission to exams. However, corrections to students’ solutions are provided as annotations to the submissions. In order to prepare for the exam, we strongly recommend to actively work on the exercises.
- The exams will be organised in written form.
- 1st exam: Sat 06.03.2021 09:00-11:00
- 2nd exam: Wed 07.04.2021 14:00-16:00
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.
- Wikipedia: Compiler [English/German]
- Free Compiler Construction Tools
- Lexical Analysis:
- Syntax Analysis: