TU Berlin

Embedded Systems ArchitectureCOMP_DESIGN

AES Logo

Page Content

to Navigation

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.

Navigation

Quick Access

Schnellnavigation zur Seite über Nummerneingabe