Zhendong Su: Catalogue data in Autumn Semester 2020
|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.
|263-2100-00L||Research Topics in Software Engineering |
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||This seminar is an opportunity to become familiar with current research in software engineering and more generally with the methods and challenges of scientific research.|
|Objective||Each student will be asked to study some papers from the recent software engineering literature and review them. This is an exercise in critical review and analysis. Active participation is required (a presentation of a paper as well as participation in discussions).|
|Content||The aim of this seminar is to introduce students to recent research results in the area of programming languages and software engineering. To accomplish that, students will study and present research papers in the area as well as participate in paper discussions. The papers will span topics in both theory and practice, including papers on program verification, program analysis, testing, programming language design, and development tools.|
|Literature||The publications to be presented will be announced on the seminar home page at least one week before the first session.|
|Prerequisites / Notice||Organizational note: the seminar will meet only when there is a scheduled presentation. Please consult the seminar's home page for information.|