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:
- Einführung
- Lexikalische Analyse
- Parsing
- Abstrakte Syntax
- Semantische Analyse
- Activation records
- Zwischensprachen
- Basisblöcke
- Instruktionsauswahl
- Lebendigkeitsanalyse
- Registerallokierung
- Fortgeschrittene Themen:
- Speicherverwaltung
- Objekt-orientierte Sprachen
- Funktionale Sprachen
- Polymorphe Typen
- Datenflussanalyse
- Schleifenoptimierungen
- SSA (Static single-assignment form)
- Pipelining and scheduling
- Speicherhierarchie
Literatur
|
Hans-Wolfgang Loidl
Last modified: Tue Feb 14 21:08:52 2006 Stardate: [-29]5319.19
|
|
|