Links und Funktionen
Sprachumschaltung

Navigationspfad
Sie sind hier: Startseite / Lehre / WS 2011/12 / Compilerbau


Inhaltsbereich

Compilerbau

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

Aktuelles

 


Inhalt

Compilerbau beschäftigt sich mit der Übersetzung von Programmen von einer Hochsprache in eine maschinennahe Sprache. Dieses Praktikum vermittelt die wichtigsten Techniken zur Konstruktion eines Übersetzers. Im Laufe des Praktikums wird ein Compiler von MiniJava in ausführbaren Maschinencode implementiert. mehr...

 


Organisation

Dozenten

Zeit und Ort

Veranstaltung Zeit Ort Beginn
Praktikum Mo, 14–18 Uhr Raum L U117 (Takla Makan), Oettingenstr. 67 17.10.2011

Hörerkreis

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


Materialien

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

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


Tools

 


Einführung

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 Kurs werden anhand der praktischen Implementierung eines Compilers für eine vereinfachte Version von Java, MiniJava, 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. Als Implementierungssprache kann Java, auf Wunsch aber auch andere Sprachen wie zum Beispiel SML, OCaml, Scala, Haskell, C/C++, ..., verwendet werden.

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

 


Literatur

 

Artikelaktionen


Funktionsleiste