252-0210-00L  Compiler Design

SemesterHerbstsemester 2021
DozierendeZ. Su
Periodizitätjährlich wiederkehrende Veranstaltung
LehrspracheEnglisch



Lehrveranstaltungen

NummerTitelUmfangDozierende
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 Std.
Mi14-16ML H 44 »
Do16-18ML 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 Std.
Mo16-19HG G 3 »
Z. Su

Katalogdaten

KurzbeschreibungThis 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.
LernzielLearn principles of compiler design; gain practical experience designing and implementing a medium-scale software system.
InhaltThis 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.
LiteraturAho/Lam/Sethi/Ullmann, Compilers - Principles, Techniques, and Tools (2nd Edition)

Muchnick, Advanced Compiler Design and Implementation, Morgan Kaufmann Publishers, 1997
Voraussetzungen / BesonderesPrerequisites:
Prior exposure to modern techniques for program construction, knowledge of at least one processor architecture at the assembly language level.

Leistungskontrolle

Information zur Leistungskontrolle (gültig bis die Lerneinheit neu gelesen wird)
Leistungskontrolle als Semesterkurs
ECTS Kreditpunkte8 KP
PrüfendeZ. Su
FormSessionsprüfung
PrüfungsspracheEnglisch
RepetitionDie Leistungskontrolle wird in jeder Session angeboten. Die Repetition ist ohne erneute Belegung der Lerneinheit möglich.
Prüfungsmodusschriftlich 120 Minuten
Zusatzinformation zum PrüfungsmodusThe 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.
Hilfsmittel schriftlich2 sheets of DIN A4 paper (or 4 pages with notes on one side) with handwritten notes.
Diese Angaben können noch zu Semesterbeginn aktualisiert werden; verbindlich sind die Angaben auf dem Prüfungsplan.

Lernmaterialien

 
HauptlinkInformation
Es werden nur die öffentlichen Lernmaterialien aufgeführt.

Gruppen

Keine Informationen zu Gruppen vorhanden.

Einschränkungen

Keine zusätzlichen Belegungseinschränkungen vorhanden.

Angeboten in

StudiengangBereichTyp
Informatik BachelorVertiefung Systems and Software EngineeringOInformation