course: Compiler Design and Implementation
- teaching methods:
- lecture with integrated tutorials
- overhead transparencies
- responsible person:
- Prof. Dr.-Ing. Michael Hübner
- Prof. Dr. Pedro Diniz (extern), Prof. Dr.-Ing. Michael Hübner (ETIT)
- offered in:
- summer term
dates in summer term
- kick-off meeting Thursdays: Thursday the 03.05.2018 from 09:00 to 12.00 o'clock in ID 04/653
Date according to prior agreement with lecturer.
|Form of exam:||oral|
|Registration for exam:||Directly with the lecturer|
This course is intended to give the students a thorough knowledge of compiler design techniques and tools for modern computer programming languages. This course covers advanced topics such as data-flow analysis and control-flow analysis, code generation and program analysis and optimization.
- Front End: Lexical Analysis and Parsing . Generating an Abstract Syntax Tree (no homework)
- Semantic Analysis and Syntax-Directed Translation: Type Checking. (HW #1)
- Intermediate Code Generation
- Run-Time Environments
- Register Allocation and Instruction Scheduling
- Optimization and Control-Flow Analysis
Students should be familiar with the concepts in theory of computation (e.g., regular sets and context-free grammars); design and analysis of algorithms (e.g., asymptotic complexity, divide and conquer and dynamic-programming techniques); and have strong programming skills using dynamic, pointer-based data structures either in C or C++ programming languages. Students should also be familiar with basic concepts of imperative programming languages such as scoping rules, parameter passing disciplines and recursion.
- Muchnick, S. "Advanced Compiler Design and Implementation", Morgan Kaufmann, None
- Aho, Alfred V., Lam, Monica S., Sethi, Ravi "Compilers Principles, Techniques, & Tools", Addison Wesley Longman Publishing Co, 2005
- Cooper, Keith, Torczon, Linda "Engineering a Compiler", Morgan Kaufmann, 2010
The course takes place from 03.05. - 16.05.2018. The lecture times will be scheduled in the kick-off meeting.