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
You're viewing possible stale or outdated data. Please check the latest semester for more up-to-date information.

Compiler Design I

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

Last Updated: 2026-02-05 15:10:06

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/Sethi/Ullmann, Compilers - Principles, Techniques, and Tools (English edition or both volumes of the German edition).

General Information

Language
English
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