direkt zum Inhalt springen

direkt zum Hauptnavigationsmenü

Sie sind hier

TU Berlin

Inhalt des Dokuments

Compiler Design

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
Practical:
  •     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:

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.

Zusatzinformationen / Extras

Direktzugang:

Schnellnavigation zur Seite über Nummerneingabe