621.401 (19S) Übersetzerbau

Sommersemester 2019

Anmeldefrist abgelaufen.

Erster Termin der LV
07.03.2019 10:00 - 12:00 , V.1.03
... keine weiteren Termine bekannt

Überblick

Lehrende/r
LV-Titel englisch
Compiler Construction
LV-Art
Praktikum (prüfungsimmanente LV )
Semesterstunde/n
2.0
ECTS-Anrechungspunkte
4.0
Anmeldungen
15 (30 max.)
Organisationseinheit
Unterrichtssprache
Englisch
mögliche Sprache/n der Leistungserbringung
Deutsch , Englisch
LV-Beginn
07.03.2019
eLearning
zum Moodle-Kurs
Anmerkungen

Einführung: 7. März, 10:15 Uhr, V.1.03

LV-Beschreibung

Intendierte Lernergebnisse

Studierende können die Konzepte des Übersetzerbaus anwenden, um einen konkreten Compiler zu entwickeln, und dessen Design und Funktionsweise erklären.

Lehrmethodik

Studierende erhalten wöchentliche Aufgaben zum Compilerprojekt sowie zur Compilertheorie. Die Lösungen zu letzteren Aufgaben sind im Praktikum mündlich zu präsentieren. Für das Compilerprojekt sind Abgaben zu fünf Meilensteinen vorgesehen. Am Semesterende ist zudem von jedem/r Teilnehmer/in ein Bericht über das Compilerprojekt abzugeben.

Inhalt/e

  • Implementierung eines Compilers
  • Lexikalische Analyse, endliche Automaten
  • Kontextfreie Grammatiken, Kellerautomaten
  • Syntaktische Analyse (Parser)
  • Syntax-gesteuerte Übersetzung, attributierte Grammatiken
  • Statische Korrektheitsprüfung
  • Laufzeitumgebungen
  • Code-Erzeugung

Erwartete Vorkenntnisse

  • Rechnerorganisation (MIPS-Assembler)
  • Theoretische Informatik (Formale Sprachen, Automaten)

Literatur

Aho – Lam – Sethi – Ullman: Compilers, 2nd ed., Pearson, 2006. Deutsche Auflage (2008) ist in der "Lehrbuchsammlung" der Universitätsbibliothek verfügbar.

Intendierte Lernergebnisse

Students can apply the concepts of compiler construction to developing a concrete compiler, and explain its design and functional issues.

Lehrmethodik

Students are assigned weekly homework exercises related to both the compiler project and compiler theory. Solutions are to be presented orally in class. For the compiler project, code is to be submitted corresponding to five milestones. At the end of the semester, a report about the compiler project has to be submitted by every participant.

Inhalt/e

  • Implementing a compiler
  • Lexical analysis, finite automata
  • Context-free grammars, push-down automata
  • Syntactical analysis (parsing)
  • Syntax-directed translation, attribute grammars
  • Static correctness checking
  • Run-time environments
  • Code generation

Erwartete Vorkenntnisse

  • Computer organization (MIPS assembler)
  • Theoretical computer science (formal languages, automata)

Literatur

Aho – Lam – Sethi – Ullman: Compilers, 2nd ed., Pearson, 2006. German edition (2008) available in "Lehrbuchsammlung" of local library.

Prüfungsinformationen

Prüfungsmethode/n

  • Abgabe von Programmcode und Bericht zum entwickelten Compiler.
  • Mündliche Präsentation der Lösungen zu den Übungsaufgaben.

Prüfungsinhalt/e

  • Selbstentwickelter Compiler
  • Themen der Übungsaufgaben

Beurteilungskriterien/-maßstäbe

  • Lösung der Übungsaufgaben: 30% (Kreuzelliste)
  • Code-Abgaben zu Meilensteinen der Compiler-Entwicklung: 50%
  • Bericht zum entwickelten Compiler: 20%
  • In jedem dieser drei Bereiche müssen mindestens 50% der Punkte erreicht werden.

Details sowie Punkteschlüssel für die Notenvergabe werden am Beginn der LV in Moodle bereitgestellt.

Prüfungsmethode/n

  • Code submissions and a written report on the developed compiler. 
  • Oral presentation of solutions to exercises.

Prüfungsinhalt/e

  • Developed compiler
  • Topics of exercises

Beurteilungskriterien/-maßstäbe

  • Solution of exercises: 30% (online check list)
  • Submission of code according to milestones of compiler development: 50%
  • Report on developed compiler: 20%
  • For each of these assignment groups, at least 50% of the maximal score is required to pass this course.

Details of grading rules are made available in Moodle upon start of the course.

Beurteilungsschema

Note/Grade Benotungsschema

Position im Curriculum

  • Lehramtsstudium Unterrichtsfach Informatik und Informatikmanagement (SKZ: 884, Version: 04W.7)
    • 2.Abschnitt
      • Fach: Praktische und Technische Informatik (LI 2.2) (Pflichtfach)
        • Übersetzerbau ( 2.0h PR / 3.0 ECTS)
          • 621.401 Übersetzerbau (2.0h PR / 4.0 ECTS)
  • Masterstudium Angewandte Informatik (SKZ: 911, Version: 13W.1)
    • Fach: Vertiefung Informatik (Pflichtfach)
      • Übersetzerbau ( 2.0h UE / 4.0 ECTS)
        • 621.401 Übersetzerbau (2.0h PR / 4.0 ECTS)

Gleichwertige Lehrveranstaltungen im Sinne der Prüfungsantrittszählung

Sommersemester 2018
  • 621.401 PR Übersetzerbau (2.0h / 4.0ECTS)
Sommersemester 2017
  • 621.401 PR Übersetzerbau (2.0h / 4.0ECTS)
Sommersemester 2016
  • 621.401 PR Übersetzerbau (2.0h / 4.0ECTS)
Sommersemester 2015
  • 621.401 PR Übersetzerbau (2.0h / 4.0ECTS)
Sommersemester 2014
  • 621.401 PR Übersetzerbau (2.0h / 4.0ECTS)
Sommersemester 2013
  • 621.401 PR Übersetzerbau (2.0h / 4.0ECTS)
  • 621.402 PR Übersetzerbau (2.0h / 4.0ECTS)
Sommersemester 2012
  • 621.401 PR Übersetzerbau (2.0h / 4.0ECTS)
Sommersemester 2011
  • 621.401 PR Übersetzerbau (2.0h / 4.0ECTS)
Sommersemester 2010
  • 621.401 PR Übersetzerbau (2.0h / 4.0ECTS)
  • 621.402 PR Übersetzerbau (2.0h / 4.0ECTS)
Sommersemester 2009
  • 621.401 PR Übersetzerbau (2.0h / 4.0ECTS)
  • 621.402 PR Übersetzerbau (2.0h / 4.0ECTS)