621.401 (24S) Compiler Construction

Sommersemester 2024

Anmeldefrist abgelaufen.

Erster Termin der LV
06.03.2024 15:15 - 16:45 S.2.69 - Bitmovin On Campus
Nächster Termin:
08.05.2024 15:15 - 16:45 S.2.69 - Bitmovin On Campus

Überblick

Lehrende/r
LV Nummer Südostverbund INO23001UL
LV-Titel englisch Compiler Construction
LV-Art Übung (prüfungsimmanente LV )
LV-Modell Präsenzlehrveranstaltung
Semesterstunde/n 2.0
ECTS-Anrechnungspunkte 4.0
Anmeldungen 27 (30 max.)
Organisationseinheit
Unterrichtssprache Englisch
mögliche Sprache/n der Leistungserbringung Deutsch , Englisch
LV-Beginn 06.03.2024
eLearning zum Moodle-Kurs

Zeit und Ort

Liste der Termine wird geladen...

LV-Beschreibung

Intendierte Lernergebnisse

Absolventen dieses Kurses können:

  • theoretische Konzepte der Compiler-Technologie auf Übungsaufgaben anwenden;
  • eine funktionstüchtige Compiler-Implementierung analysieren, erklären und testen;
  • ein Compiler-Build-Tool anwenden und eine Compiler-Implementierung für eine einfache Programmiersprache erweitern.

Lehrmethodik

  • Studierende erhalten wöchentliche Übungsaufgaben zur Compiler-Technologie sowie zur Compiler-Implementierung für die Bearbeitung zu Hause.
  • Probleme und LÖsungen werden in den Übungseinheiten präsentiert und diskutiert.
  • Die Bereitstellung aller Materialien sowie Abgabe und Bewertung erfolgen in der E-Learning-Plattform Moodle.

Inhalt/e

  • Untersuchung, Test und Erweiterung einer funktionstüchtigen Compiler-Implementierung
  • Lexikalische Analyse, endliche Automaten
  • Kontextfreie Grammatiken, Kellerautomaten
  • Syntaxanalyse
  • Attributgrammatiken
  • Symboltabellen
  • Laufzeitumgebungen
  • Code-Erzeugung

Erwartete Vorkenntnisse

  • Programmierung in Java
  • Rechnerorganisation - MIPS-Assembler
  • Theoretische Informatik - formale Sprachen, Automaten

Literatur

  • K. C. Louden: Compiler Construction: Principles and Practice, Course Technology, 2009.
  • Aho, Lam, Sethi, Ullman: Compilers, 2nd ed., Pearson, 2006.
  • Beide Bücher sind auch in der AAU-Lehrbuchsammlung vorhanden.

Intendierte Lernergebnisse

Graduates of this module can:

  • apply theoretical concepts of compiler construction to exercises;
  • analyze, explain, and test a working compiler implementation;
  • use a compiler building tool and extend a working compiler for a simple programming language.

Lehrmethodik

  • Students are assigned weekly homework exercises related to both the compiler project and compiler theory.
  • Problems and solutions are presented and discussed in class meetings.
  • All provisioning of materials, submissions, and grading are handled on Moodle e-learning platform.

Inhalt/e

  • Investigating, testing, and extending a working compiler
  • Lexical analysis, finite automata
  • Context-free grammars, push-down automata
  • Syntax analysis
  • Attribute grammars
  • Symbol tables
  • Run-time environments
  • Target code generation

Erwartete Vorkenntnisse

  • Java programming skills
  • Computer organization - MIPS assembler
  • Theoretical computer science - formal languages, automata

Literatur

  • K. C. Louden: Compiler Construction: Principles and Practice, Course Technology, 2009.
  • Aho, Lam, Sethi, Ullman: Compilers, 2nd ed., Pearson, 2006.
  • Both books are also available in "Lehrbuchsammlung" of local library.

Prüfungsinformationen

Im Fall von online durchgeführten Prüfungen sind die Standards zu beachten, die die technischen Geräte der Studierenden erfüllen müssen, um an diesen Prüfungen teilnehmen zu können.

Prüfungsmethode/n

  • Präsentation und Diskussion von Übungsaufgaben (Kreuzelliste)
  • Abgabe von Code und Bericht über die Compiler-Implementierung
  • Schriftliche Prüfung am Semesterende (mit Unterlagen)
    • Bei Abwesenheit oder negativem Ergebnis (<20%) wird ein zweiter Prüfungstermin angeboten.

Prüfungsinhalt/e

  • Themen der Übungsaufgaben
  • Bereitgestellte und erweiterte Compiler-Implementierung

Beurteilungskriterien/-maßstäbe

  • Übungsaufgaben: 30%, entsprechend der Anzahl der angekreuzten Aufgaben (Kreuzelliste)
  • Compiler-Implementierung: 30%, entsprechend der Qualität und Vollständigkeit des abgegebenen Codes und Berichts.
  • Schriftliche Prüfung: 40%
  • Minimalkriterium für positiven Abschluss: 50% jeder Beurteilungskomponente (Kreuzelliste, Abgabe, Prüfung)

Weitere Details der Beurteilungskriterien werden zu Beginn der LV in Moodle bereitgestellt.

Prüfungsmethode/n

  • Presentation and discussion of homework assignments (online checklist)
  • Submission of code and report related to working compiler
  • Written exam at end of semester (open book)
    • In case of absence or failure (<20%), a second exam opportunity will be provided.

Prüfungsinhalt/e

  • Topics covered by homework assignments
  • Provided and extended compiler implementation

Beurteilungskriterien/-maßstäbe

  • Homework assignments: 30%, according to number of prepared (checked) exercises.
  • Compiler project: 30%, according to quality and completeness of submitted code and report.
  • Written exam: 40%
  • Minimum to pass: 50% of each grading component (check list, submission, exam)

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

Beurteilungsschema

Note Benotungsschema

Position im Curriculum

  • Master-Lehramtsstudium Master Unterrichtsfach Informatik (SKZ: 514, Version: 19W.2)
    • Fach: Gebundene Wahlfächer AAU (INO.002) (Wahlfach)
      • INO.203 Übersetzerbau ( 2.0h UE / 4.0 ECTS)
        • 621.401 Compiler Construction (2.0h UE / 4.0 ECTS)
          Absolvierung im 2. Semester empfohlen
  • Masterstudium Informatics (SKZ: 911, Version: 19W.2)
    • Fach: Vertiefung Informatik (Specialization in Informatics) (Pflichtfach)
      • 1.5 Compiler Construction ( 2.0h UE / 4.0 ECTS)
        • 621.401 Compiler Construction (2.0h UE / 4.0 ECTS)
          Absolvierung im 2. Semester empfohlen

Gleichwertige Lehrveranstaltungen im Sinne der Prüfungsantrittszählung

Sommersemester 2023
  • 621.401 UE Compiler Construction (2.0h / 4.0ECTS)
Sommersemester 2022
  • 621.401 UE Compiler Construction (2.0h / 4.0ECTS)
Sommersemester 2021
  • 621.401 UE Compiler Construction (2.0h / 4.0ECTS)
Sommersemester 2020
  • 621.401 PR Compiler Construction (2.0h / 4.0ECTS)
Sommersemester 2019
  • 621.401 PR Übersetzerbau (2.0h / 4.0ECTS)
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)
Sommersemester 2012
  • 621.401 PR Übersetzerbau (2.0h / 4.0ECTS)
Sommersemester 2011
  • 621.401 PR Übersetzerbau (2.0h / 4.0ECTS)