Compilerbau

Hauptstudium
WS 2007/08
Praktikum: Prof. Martin Hofmann, Dr. Hans-Wolfgang Loidl, Dr. Andreas Abel
Schein: ja
Raum: .17


Aktuelles

  • Alle interessierten Studenten sind zur ersten Vorlesung am Donnerstag, 18. Oktober 2007, 14:00ct, in .17 (Oett) eingeladen. Vorherige Anmeldung ist nicht nötig.

Organisatorisches

Praktikum Do 14.00 - 18:00 .17 (Oettingenstr. 67) ab 18.10.07 Prof. Martin Hofmann
Dr. Andreas Abel
Dr. Hans-Wolfgang Loidl

Für Studierende der Informatik im Hauptstudium
Prüfungsbereich PG, T
Vorkenntnisse Grundkenntnisse in Informatik
Schein gilt für Diplomprüfung im Haupt- oder Nebenfach Informatik
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.

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 wahlweise Java, Ocaml oder Haskell (für weitere Vorschläge sind wir durchaus offen). Auf den Seiten zur Software sind die verwendeten Tools näher beschrieben.

Inhalt

Das Praktikum wird nach dem unten angegebenen Lehrbuch strukturiert:

  • 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:
    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


Valid HTML 4.01!
Hans-Wolfgang Loidl
Last modified: Thu Jan 10 15:00:56 2008 Stardate: [-29]8792.91
Valid CSS!