Links und Funktionen
Sprachumschaltung

Navigationspfad
Sie sind hier: Startseite / Lehre / WS 2014/15 / Compilerbau


Inhaltsbereich

Praktikum Compilerbau

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

Aktuelles

  • Abnahmen am 26. Januar im Raum E107, Oettingenstraße 67:
    ZeitGruppe
    9:20-10:00 Kowalewski
    10:00-10:40 Bleicher, Seiler
    10:40-11:20 Koller, Ziegeltrum
    11:20-12:00 Steinke, Petropoulos, Amft
    13:00-13:40 Goldschwendt, Seifert
    13:40-14:20 Saumweber, Tänzel
    14:20-15:00 Sellmair, Riegert
    15:30-16:10 Schwarz
    16:10-16:50 Rohm, Götz
    16:50-17:30 Schreiber, Borutta
    17:30-18:10 Claessens
  • Bitte melden Sie sich bei UniWorX für das Praktikum an.
  • Bei Bedarf kann diese Lehrveranstaltung auf Englisch gehalten werden.
    If required, this course can be taught in English. See the English version of this page for the syllabus. 

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

VeranstaltungZeitOrtBeginn
Vorlesung Mo, 14–16 Uhr CIP-Pool (Gobi), Oettingenstr. 67 6.10.2014
Praktikumsteil Mo, 16–18 Uhr CIP-Pool (Gobi), Oettingenstr. 67 6.10.2014

Hörerkreis

Zielgruppe sind Studierende folgender Studiengänge:

  • Master (Medien-)Informatik (Praktikum zu fortgeschrittenen Themen der Informatik)
  • Diplom (Medien-)Informatik (Prüfungsbereich T)
Das Praktikum kann auch im Bachelor eingebracht werden (Vertiefende Themen der Informatik).
Voraussetzungen: gute Programmierkenntnisse, Rechnerarchitektur, Formale Sprachen 

Materialien

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

Übung 2: Lexer und Parser für MiniJava

Übung 3: Parser für MiniJava

Übung 5: Übersetzung in die Zwischensprache

Übung 6: Übersetzung in die Zwischensprache

Übung 7: Kanonisierung und Tracing

Übung 8: Instruktionsauswahl

Übung 10: Liveness und Interferenzgraph


Tools


Literatur

 

Artikelaktionen


Funktionsleiste