Links und Funktionen
Sprachumschaltung

Navigationspfad
Sie sind hier: Startseite / Lehre / WS 2009/10 / Compilerbau


Inhaltsbereich

Compilerbau

Praktikum, 4std., Mi. 14-18, Hofmann, Schöpp, Grabowski

 


Aktuelles

  • Die Scheine können ab dem 15.03.2010 im Sekretariat abgeholt werden.
  • Die Abnahme findet am 19.02.2010 im CIP Raum Z11 statt.
  • Ab 11.11.2009 finden Vorlesung und Praktikumsteil im CIP-Raum Z11 "Takla-Makan" statt.

 


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 anhand einer Implementierung eines Compilers von MiniJava in ausführbaren Maschinencode. mehr...

 


Organisation

Dozenten

Zeit und Ort

Veranstaltung Zeit Ort Beginn
Praktikum Mi, 14–18 Uhr Raum 1.43 (neu: 169), Oettingenstr. 67 21.10.2009

Hörerkreis und Scheinerwerb

Teilnehmer
  • Studierende der Informatik im Hauptstudium
  • Bachelorstudenten im 5. Semester können das Praktium als Modul P17, Vertiefende Themen der Informatik belegen.


Vorkenntnisse
Grundkenntnisse Informatik, insbesondere in Java
Schein
gilt für Diplomprüfung im Haupt- oder Nebenfach Informatik
Prüfungsbereich
PG, T
Scheinerwerb
Mündliche oder schriftliche Prüfung am Ende des Semesters mit Zulassungsvoraussetzung. Die Zulassungsvoraussetzung wird abhängig von der Hörerzahl zu einem späteren Zeitpunkt festgelegt und mitgeteilt werden.

 


Materialien

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

Übung 2: Lexer und Parser für Beispielsprache "Straightline"

Übung 3: Parser für MiniJava

Übung 5: Übersetzung in Zwischensprache

Übung 6: Aktivierungssätze (Frames)

Übung 7: Basisblöcke

Übung 9: Garbage Collection

Übung 10: Aktivitätsanalyse

Übung 11: Registerverteilung

Übung 14: Objekt-orientierte Sprachen

  • Inheritance.mj - MiniJava-Beispielprogramm zum Testen der objekt-orientierten Features

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. Die Implementierungssprache ist Java (auf Wunsch können aber auch andere Sprachen wie zum Beispiel OCaml verwendet werden).

Themen

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

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

 


Literatur

 

Artikelaktionen


Funktionsleiste