Links und Funktionen
Sprachumschaltung

Navigationspfad
Sie sind hier: Startseite / Lehre / SS 2013 / Compilerbau


Inhaltsbereich

Praktikum Compilerbau

Praktikum, 4-std., Mo. 14-18, Abel, Schöpp

Aktuelles

  • Die Abnahmen finden am Di, den 23.7. im Raum L109 statt.
    Zeitplan der Abnahmen:
    • 9:00 - 9:30 Halder, Karalus
    • 9:35 - 10:05 Ittner, Meyer
    • 10:10 - 10:40 Freiberger, Guggemos, Lang
    • 10:45 - 11:15 Fussenegger, Hildebrand
    • 11:20 - 11:50 Neukirchen

    • 13:00 - 13:30 Germano, Kurtusic
    • 13:35 - 14:05 Bilnder, Pleintinger
    • 14:10 - 14:40 Franz, Reithmayer
    • 14:45 - 15:15 Brückner, Wallwitz

    • 16:00 - 16:30 Barth, Gabor
    • 16:35 - 17:05 Hessenberger, Sommer
    • 17:10 - 17:40 von Raven
    • 17:45 - 18:15 Bschorer, Ludwig
  • Bitte melden Sie sich bei UniWorX für das Praktikum an.

Inhalt

Compilerbau beschäftigt sich mit der Übersetzung von Programmen von einer (Hoch-)sprache in eine maschinennahe Sprache. Die dazu verwendeten Methoden, wie Parsing, syntaktische und semantische Analyse, finden in zahlreichen Gebieten der Informatik Anwendung. Das Praktikum bietet interessierten Studenten die Gelegenheit, sich grundlegende Techniken in diesem Gebiet anzueignen, sowie Kentnisse in verschiedenen Gebieten, von formalen Methoden bis maschinennaher Programmierung, zu vertiefen.

In diesem Praktikum wird ein Compiler für MiniJava, eine vereinfachte Version von Java, entwickelt. Damit werden die wichtigsten Techniken zur Konstruktion eines Übersetzers vermittelt. Dies beinhaltet das Lesen und Analysieren des Eingabeprogramms, Optimierungen des Programms zur Effizienzsteigerung, sowie die Codegenerierung für moderne Prozessoren.

Für die Programmieraufgaben stehen mehrere Tools, wie ein Parsergenerator, zur Verfügung.  Die Implementierungssprache ist wahlweise Java, OCaml oder Haskell (für weitere Vorschläge sind wir durchaus offen).

Themen

Das Praktikum folgt dem unten angegebenen Buch Modern Compiler Implementation in Java, welches wie folgt strukturiert ist:

  • Grundlagen
    • Einführung
    • Lexikalische Analyse
    • Parsing
    • Abstrakte Syntax
    • Semantische Analyse
    • Activation records
    • Zwischensprachen
    • Basisblöcke
    • Instruktionsauswahl
    • Lebendigkeitsanalyse
    • Registerallokierung
  • Fortgeschrittene Themen (werden nur teilweise im Praktikum behandelt)
    • Speicherverwaltung
    • Objekt-orientierte Sprachen
    • Funktionale Sprachen
    • Polymorphe Typen
    • Datenflussanalyse
    • Schleifenoptimierungen
    • SSA (Static single-assignment form)
    • Pipelining and scheduling
    • Speicherhierarchie 

Organisation

Dozenten

Zeit und Ort

Veranstaltung Zeit Ort Beginn
Vorlesung
Mo, 14–16 Uhr Raum L U112 (Gobi), Oettingenstr. 67 15.04.2013
Praktikumsteil
Mo, 16-18 Uhr
Raum L U112 (Gobi), Oettingenstr. 67 15.04.2013

Hörerkreis

Zielgruppe sind Studierende folgender Studiengänge:
  • Master (Medien-)Informatik (Praktikum zu fortgeschrittenen Themen der Informatik)
  • Diplom (Medien-)Informatik (Prüfungsbereich T)
  • Bachelor (Medien-)Informatik (Vertiefende Themen der Informatik)

Materialien

Übung 1: Interpreter für Beispielsprache "Straightline"

Übung 2: Lexer und Parser für Straightline und MiniJava

Übung 3: Parser für Minijava

Übung 5: Übersetzung in Zwischencode

Übung 6: Modellierung von Aktivierungssätzen (Frames)

Übung 8: Instruktionsauswahl


Tools


Literatur

 

Artikelaktionen


Funktionsleiste