Inhalt
zur Navigation
Overview
This course introduces the major ideas used today in the implementation of programming language compilers. You will learn how a program written in a high-level language designed for humans translates into a program written in low-level assembly.
Students will be able to:
Understand how real compilers work and how high-level language program are systematically translated into low-level assembly;
Become familiar with compiler analyses, intermediate representations and code generation;
Improve programming ability;
Implement compiler analysis, transformation and code generation approaches based on real compiler infrastructures;
Study recent advances in compiler design.
Contents
This course introduces the concepts used today in the design of modern compilers. You will learn how a program written in a high-level language designed for humans translates into a program written in low-level assembly, and how an optimizing compiler can improve the quality of the generated code. The contents includes both theoretical aspects and practical applications:
Theory:
- Lexical analysis
- Syntax analysis
- Semantic analysis
- Intermediate representations
- Code generation and runtime
- Dataflow analysis
- Static single assignment form
- Instruction scheduling, register allocation
- Optimization
- Compilation for embedded systems
- Implementing a lexer with FLEX
- Implementing a parser with BISON
- Implementing analysis and optimization passes for C programs with the LLVM compiler
Other Information
Registration:
Course will be managed through ISIS and registration through QISPOS.
Contact:
By E-Mail: cd@aes.tu-berlin.de
Prerequisite:
Knowledge of C programming and an introductory course on computer architecture is recommended.
Teaching language:
English
Organisation:
- Free elective course - 6 ECT.
- Course intended for Technische Informatik and Informatik students.
- 2VL+2UE: Two hours per week lecture and two hours per week practical.
- Practical starts second week of the semester.