252-0210-00L  Compiler Design

SemesterAutumn Semester 2021
LecturersZ. Su
Periodicityyearly recurring course
Language of instructionEnglish



Courses

NumberTitleHoursLecturers
252-0210-00 VCompiler Design
Online event: Will primarily take place online. Reserved rooms will remain blocked on campus for students to follow the course from there.
4 hrs
Wed14:15-16:00ML H 44 »
Thu16:15-18:00ML H 44 »
Z. Su
252-0210-00 UCompiler Design
Online event: Will primarily take place online. Reserved rooms will remain blocked on campus for students to follow the course from there.
3 hrs
Mon16:15-19:00HG G 3 »
Z. Su

Catalogue data

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.
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.

Performance assessment

Performance assessment information (valid until the course unit is held again)
Performance assessment as a semester course
ECTS credits8 credits
ExaminersZ. Su
Typesession examination
Language of examinationEnglish
RepetitionThe performance assessment is offered every session. Repetition possible without re-enrolling for the course unit.
Mode of examinationwritten 120 minutes
Additional information on mode of examinationThe grade will be determined by:
(1) a mandatory project: 50%
(2) a final written exam: 50%

Students who are repeating the course are required to repeat the project work.
Written aids2 sheets of DIN A4 paper (or 4 pages with notes on one side) with handwritten notes.
This information can be updated until the beginning of the semester; information on the examination timetable is binding.

Learning materials

 
Main linkInformation
Only public learning materials are listed.

Groups

No information on groups available.

Restrictions

There are no additional restrictions for the registration.

Offered in

ProgrammeSectionType
Computer Science BachelorMajor: Systems and Software EngineeringOInformation