Compilerconstructie, Fall 2011
Description
The purpose of the course is to become familiar with the functionality of the different phases in the construction of a compiler and to gain insight of how these phases are related to each other. Topics that are discussed during the lectures cover the process of the construction of a compiler, e.g., lexical analysis, syntax analysis, semantic analysis, intermediate code generation, code generation, and code optimization.
Organization of the course
Class lectures with a written exam. The lectures will be given as oral presentations supported by PowerPoint slides. The slides will be made available on this web page after each lecture. There will be a written exam scheduled after the course.
Programming assignment. In the programming assignment the theoretical material presented during the lectures will be applied in the construction of a simple compiler. The compiler will be constructed in 4 steps; each step is a separate programming task. All programming tasks have to be fulfilled. For each task, there will be 2 (academic) hours of Lab-session. In addition, a period of 3 weeks will be available for completing the task (except for the first one).
Literature
A.V. Aho, R. Sethi, en J.D. Ullman, "Compilers: Principles, Techniques, and Tools", Addison-Wesley, 1986, ISBN: 0-201-10088-6.
Note: The second edition of the book can be used as well.
Exams and grading
The final grade is a combination of the grades from the written exam and the programming assignment. Note that a grade for the programming assignment is given only if all 4 tasks are fulfilled.
Duration of the course and location
| Period : |
07 September 2011 07 December 2011 |
Lecture slides and programming tasks
07 September 2011 : Overview
14 September 2011 : Lexical Analysis
21 September 2011 : Syntax Analysis 1
28 September 2011 : Syntax Analysis 2
05 October 2011 : Programming Task 1
12 October 2011 : Static Type Checking + Programming Tasks 2
26 October 2011 : Intermediate Code Generation
02 November 2011 : Programming Task 3
09 November 2011 : Code Generation
16 November 2011 : Code Optimization
23 November 2011 : Programming Tasks 4 + Introduction slides
30 November 2011 : The Daedalus design flow
07 December 2011 : Lab Session