Zhendong Su: Catalogue data in Autumn Semester 2019

Name Prof. Dr. Zhendong Su
FieldComputer Science
Address
Professur für Informatik
ETH Zürich, CNB H 102
Universitätstrasse 6
8092 Zürich
SWITZERLAND
Telephone+41 44 633 77 72
E-mailzhendong.su@inf.ethz.ch
DepartmentComputer Science
RelationshipFull Professor

NumberTitleECTSHoursLecturers
252-0210-00LCompiler Design8 credits4V + 3UZ. Su
AbstractThis 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.
Learning objectiveLearn principles of compiler design; gain practical experience designing and implementing a medium-scale software system.
ContentThis 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.
LiteratureAho/Lam/Sethi/Ullmann, Compilers - Principles, Techniques, and Tools (2nd Edition)

Muchnick, Advanced Compiler Design and Implementation, Morgan Kaufmann Publishers, 1997
Prerequisites / NoticePrerequisites:
Prior exposure to modern techniques for program construction, knowledge of at least one processor architecture at the assembly language level.
263-2100-00LResearch Topics in Software Engineering Information Restricted registration - show details
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 credits2SP. Müller, M. Püschel, Z. Su, M. Vechev
AbstractThis seminar is an opportunity to become familiar with current research in software engineering and more generally with the methods and challenges of scientific research.
Learning objectiveEach 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).
ContentThe 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. A particular focus will be on domain-specific languages.
LiteratureThe publications to be presented will be announced on the seminar home page at least one week before the first session.
Prerequisites / NoticeOrganizational note: the seminar will meet only when there is a scheduled presentation. Please consult the seminar's home page for information.