Compilerbau

Hauptstudium, PG
WS 2005/06
Praktikum: Di, 14-18,Prof. Martin Hofmann
Schein: ja


Diese Seiten befinden sich im Aufbau!

Aktuelles

Organisatorisches

  Tag Zeit Ort Beginn Dozent
Praktikum Di 14.00 - 18:00 0.43 (Oettingenstr. 67) 18.10.05 Prof. Martin Hofmann

Für Studierende der Informatik im Hauptstudium
Studierende der Mathematik im Hauptstudium
Prüfungsbereich PG
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 Techniken, wie Parsing, syntaktiche 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 Compilers 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: Tue Feb 14 21:08:52 2006 Stardate: [-29]5319.19
Valid CSS!