course: Compiler Design and Implementation

number:
148226
teaching methods:
lecture with integrated tutorials
media:
overhead transparencies
responsible person:
Prof. Dr.-Ing. Michael Hübner
lecturers:
Prof. Dr. Pedro Diniz (extern), Prof. Dr.-Ing. Michael Hübner (ETIT)
language:
english
HWS:
2
CP:
2
offered in:
summer term

dates in summer term

  • lecture with integrated tutorials: according to agreement

goals

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.

content

  • 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

requirements

none

recommended knowledge

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.

literature

  1. Muchnick, S. "Advanced Compiler Design and Implementation", Morgan Kaufmann, None
  2. Aho, Alfred V., Lam, Monica S., Sethi, Ravi "Compilers Principles, Techniques, & Tools", Addison Wesley Longman Publishing Co, 2005
  3. Cooper, Keith, Torczon, Linda "Engineering a Compiler", Morgan Kaufmann, 2010