VVZ API is not affiliated with ETH Zurich. Data might be outdated or incorrect. Please view the official ETHZ Vorlesungsverzeichnis for binding information.

251-0222-00L 6 Credits BSC , DR , DS , MSC D-USYS , D-BAUG , D-MAVT , D-INFK , D-MTEC , D-MATH , D-BIOL , D-ERDW , D-GESS , D-ITET , D-CHAB

Compiler Design I

Lecturers & Examiners: Prof. em. Dr. Thomas Gross
VVZ CR n/a

Last Updated: 2026-02-05 15:29:51

Abstract

This course uses compilers as example to expose modern software development techniques.Compiler organization. Lexical analysis. Top-down parsing via recursive descent, table-driven parsers, bottom-up parsing. Symboltables, semantic checking. Code generation for a simple RISC machine: conditionals, loops, procedure calls, simple register allocation techniques.

Objective

Learn principles of compiler design, gain practical experience designing and implementing a medium-scale software system.

Content

This course uses compilers as example to expose modern software development techniques. The course introduces the students to the fundamentals of compiler construction. Students will implement a simple yet complete compiler for an object-oriented programming language for a realistic target machine. Students will learn the use of appropriate tools (parser generators); the implementation language is Java. Throughout the course, students learn to apply their knowledge of theory (automata, grammars, stack machines, program transformation) and well-known programming techniques (module definitions, design patterns, frameworks, software reuse) in a software project. Specific topics: Compiler organization. Lexical analysis. Top-down parsing via recursive descent, table-driven parsers, bottom-up parsing. Symboltables, semantic checking. Code generation for a simple RISC machine: expression evaluation, straight line code, conditionals, loops, procedure calls, simple register allocation techniques. Storage allocation on the stack, parameter passing, runtime storage management, heaps. Special topics as time permits: introduction to global dataflow and its application to register allocation, instruction scheduling.

Resources

Literature

Aho/Lam/Sethi/Ullmann, Compilers - Principles, Techniques, and Tools (2nd Edition) Muchnick, Advanced Compiler Design and Implementation, Morgan Kaufmann Publishers, 1997

General Information

Language
English
Levels
BSC , DR , DS , MSC
Frequency
Yearly recurring

Examination

Type
session examination
Mode
written 60 minutes
Aids
Alle geschriebenen und gedruckten Hilfsmittel, aber keine Computer, Handies, oder ähnliches.

Course Components

Type Title Time & Place Hours
lecture Compiler Design I
  • Tue 10:15-12:00 (IFW A 32.1)
2 h weekly
exercise Compiler Design I
  • Thu 08:15-10:00 (IFW A 36)
2 h weekly

Offered In