Zhendong Su: Catalogue data in Autumn Semester 2021
|Name||Prof. Dr. Zhendong Su|
Professur für Informatik
ETH Zürich, CNB H 102
|Telephone||+41 44 633 77 72|
|252-0210-00L||Compiler Design||8 credits||4V + 3U||Z. Su|
|Abstract||This course uses compilers as examples to expose students to modern software development techniques. Tentative topics include: compiler organization; lexical analysis; top-down and bottom-up parsing; symbol tables; semantic analysis; code generation; local and global optimization; register allocation; automatic memory management.|
|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. 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.|
A tentative list of topics: compiler organization; lexical analysis; top-down and bottom-up parsing; symbol tables; semantic analysis; code generation; local and global optimization; register allocation; automatic memory management; optional advanced topics if/when time permits.
|Literature||Aho/Lam/Sethi/Ullmann, Compilers - Principles, Techniques, and Tools (2nd Edition)|
Muchnick, Advanced Compiler Design and Implementation, Morgan Kaufmann Publishers, 1997
|Prerequisites / Notice||Prerequisites: |
Prior exposure to modern techniques for program construction, knowledge of at least one processor architecture at the assembly language level.
|252-2600-05L||Software Engineering Seminar |
Number of participants limited to 22.
The deadline for deregistering expires at the end of the second week of the semester. Students who are still registered after that date, but do not attend the seminar, will officially fail the seminar.
|2 credits||2S||Z. Su, M. Vechev|
|Abstract||The course is an introduction to research in software engineering, based on reading and presenting high quality research papers in the field. The instructor may choose a variety of topics or one topic that is explored through several papers.|
|Objective||The main goals of this seminar are 1) learning how to read and understand a recent research paper in computer science; and 2) learning how to present a technical topic in computer science to an audience of peers.|
|Content||The technical content of this course falls into the general area of software engineering but will vary from semester to semester.|