Theorie und Implementation objektorientierter Programmiersprachen

Übungen

Blatt Thema Download Ausgabe Abgabe Rückgabe
1Strukturelle Induktion; Auswertungssemantikass1.pdf ass1.ps.gz23.04.29.04.30.04.
2Implementation von interner Syntax und Auswertungass2.pdf ass2.ps.gz30.04.06.05.07.05.
3Typsicherheit; Äquivalenz von small- und big-step-Semantikass3.pdf ass3.ps.gz07.05.13.05.14.05.
4Programmieren im Lambda-Kalkülass4.pdf ass4.ps.gz14.05.23.05.27.05.
5Programmieren im Lambda-Kalkül (Sonderpunkte)ass5.pdf ass5.ps.gz23.05.27.05.03.06.
6Namenlose Repräsentation von Lambda-Termen nach de Bruijnass6.pdf ass6.ps.gz27.05.10.06.11.06.
7Getypter Lambda-Kalkül und Typinferenzass7.pdf ass7.ps.gz13.06.24.06.25.06.
8Programmieren mit Referenzenass8.pdf ass8.ps.gz25.06.01.07.02.07.
9Untertypenass9.pdf ass9.ps.gz03.07.08.07.09.07.
10OOP in funktionaler Sprache (Sonderpunkte)ass10.pdf ass10.ps.gz11.07.15.07. 

Abschlussaufgabe

Als Abschlussaufgabe ist ein Interpreter für Featherweight Java (FJ) [Pierce, Kap.19] zu implementieren, mit folgenden wesentlichen Komponenten:
  1. Parser: liest Eingabe in Form eines ASCII-Textes von Tastatur oder aus Datei und transformiert sie in interne Syntax.
  2. Type-checker: Prüft FJ-Klassendefinitionen und FJ-Ausdrücke auf wohlgetyptheit.
  3. Interpreter: Wertet FJ-Ausdrücke aus.

Hilfsmaterial

Testmaterial

Hier einige korrekte FJ Dateien zum Testen der Implementierung... Hier noch einige Dateien mit Fehlern, die der Interpreter erkennen muss:


Valid HTML 4.01!
AndreasAbel
Last modified: Tue Oct 1 15:30:58 CEST 2002
Valid CSS!