Das Herbstsemester 2020 findet in einer gemischten Form aus Online- und Präsenzunterricht statt.
Bitte lesen Sie die publizierten Informationen zu den einzelnen Lehrveranstaltungen genau.

252-0210-00L  Compiler Design

SemesterFrühjahrssemester 2017
DozierendeZ. Majó
Periodizitätjährlich wiederkehrende Veranstaltung
LehrspracheEnglisch



Katalogdaten

KurzbeschreibungDiese Vorlesung benutzt Compiler als Beispiel für moderne Software Entwicklung. Dazu werden die Kernthemen des Compilerbaus behandelt: Syntax Analyse, Symboltabellen, Code Erzeugung. Die Vorlesung und Uebungen geben den Studierenden eine gute Gelegenheit, Muster in diversen Kontexten anzuwenden.
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 (parser generators); the implementation language is Java. 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.
Specific topics: Compiler organization. Lexical analysis. Top-down parsing via recursive descent, table-driven parsers, bottom-up parsing. Symboltables, semantic checking. Code generation for a simple RISC machine: expression evaluation, straight line code, conditionals, loops, procedure calls, simple register allocation techniques. Storage allocation on the stack, parameter passing, runtime storage management, heaps. Special topics as time permits: introduction to global dataflow and its application to register allocation, instruction scheduling, practical application of the techniques and principles presented in the lecture in the context of the OpenJDK HotSpot Java Virtual Machine.
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. Majó
FormSessionsprüfung
PrüfungsspracheEnglisch
RepetitionDie Leistungskontrolle wird nur in der Session nach der Lerneinheit angeboten. Die Repetition ist nur nach erneuter Belegung möglich.
Prüfungsmodusschriftlich 120 Minuten
Zusatzinformation zum Prüfungsmodus50% of your grade is determined by homework (various assignmentes related to the topic of this course). 50% of the grade is determined by a written 2 hr exam; the exam is given during the official examination period.
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

Keine öffentlichen Lernmaterialien verfügbar.
Es werden nur die öffentlichen Lernmaterialien aufgeführt.

Lehrveranstaltungen

NummerTitelUmfangDozierende
252-0210-00 VCompiler Design4 Std.
Mo13-15CAB G 61 »
Do10-12CAB G 61 »
11.05.15-18ETZ G 91 »
15-18ETZ J 91 »
15-18ETZ K 91 »
Z. Majó
252-0210-00 UCompiler Design3 Std.
Do15-18CHN D 44 »
15-18CHN D 46 »
15-18HG E 33.5 »
15-18HG G 26.3 »
02.03.15-18HG E 5 »
16.03.15-18HG E 5 »
13.04.15-17CHN D 44 »
15-17CHN D 46 »
15-17HG E 33.5 »
15-17HG G 26.3 »
27.04.15-17CAB G 11 »
18.05.15-17HG D 1.1 »
Z. Majó

Gruppen

Keine Informationen zu Gruppen vorhanden.

Einschränkungen

Keine zusätzlichen Belegungseinschränkungen vorhanden.

Angeboten in

StudiengangBereichTyp
Informatik BachelorVertiefung Computer and Software EngineeringOInformation