Hauptseite
Zeitplan
Übungen
Software
Literatur
Theorie und Implementation objektorientierter Programmiersprachen
Übungen
Blatt
Thema
Download
Ausgabe
Abgabe
Rückgabe
1
Strukturelle Induktion; Auswertungssemantik
ass1.pdf
ass1.ps.gz
23.04.
29.04.
30.04.
2
Implementation von interner Syntax und Auswertung
ass2.pdf
ass2.ps.gz
30.04.
06.05.
07.05.
3
Typsicherheit; Äquivalenz von small- und big-step-Semantik
ass3.pdf
ass3.ps.gz
07.05.
13.05.
14.05.
4
Programmieren im Lambda-Kalkül
ass4.pdf
ass4.ps.gz
14.05.
23.05.
27.05.
5
Programmieren im Lambda-Kalkül
(Sonderpunkte)
ass5.pdf
ass5.ps.gz
23.05.
27.05.
03.06.
6
Namenlose Repräsentation von Lambda-Termen nach de Bruijn
ass6.pdf
ass6.ps.gz
27.05.
10.06.
11.06.
7
Getypter Lambda-Kalkül und Typinferenz
ass7.pdf
ass7.ps.gz
13.06.
24.06.
25.06.
8
Programmieren mit Referenzen
ass8.pdf
ass8.ps.gz
25.06.
01.07.
02.07.
9
Untertypen
ass9.pdf
ass9.ps.gz
03.07.
08.07.
09.07.
10
OOP in funktionaler Sprache
(Sonderpunkte)
ass10.pdf
ass10.ps.gz
11.07.
15.07.
Abschlussaufgabe
Als Abschlussaufgabe ist ein Interpreter für
Featherweight Java
(FJ) [Pierce, Kap.19] zu implementieren, mit folgenden wesentlichen Komponenten:
Parser: liest Eingabe in Form eines ASCII-Textes von Tastatur oder aus Datei und transformiert sie in interne Syntax.
Type-checker: Prüft FJ-Klassendefinitionen und FJ-Ausdrücke auf wohlgetyptheit.
Interpreter: Wertet FJ-Ausdrücke aus.
Hilfsmaterial
Interpreter
für
arithmetische Ausdrücke
in SML: Enthält einen Parser mit informativen Fehlermeldungen.
Dokumentierte
Grammatik
von FJ als Eingabedatei für den Haskell Parser Generator
happy
.
Testmaterial
Hier einige korrekte FJ Dateien zum Testen der Implementierung...
Pair.java
Nat.java
Lists.java
Hier noch einige Dateien mit Fehlern, die der Interpreter erkennen muss:
SyntaxError.java
: Ein paar Beispiele für Syntax-Fehler (fragmentarisch)
HierarchyError.java
: Zyklische Klassenhierarchie
ListError.java
: Nicht-wohlgetypte Ausdrücke und Cast Fehler
AndreasAbel
Last modified: Tue Oct 1 15:30:58 CEST 2002