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
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:
- 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: Thu Jan 10 15:00:56 2008 Stardate: [-29]8792.91
|
|
|