Themen
Im Compilerbaupraktikum entwickeln Teams von 4-5 Studenten einen Compiler für ein imperatives Java-Subset. Zielsprache ist Java Bytecode. Dabei kommen die Techniken und Werkzeuge aus der Veranstaltung "Sprachtechnologie und Compiler 1" zum Einsatz. Die Veranstaltung "Sprachtechnologie und Compiler 2" muss nicht gleichzeitig gehört werden. Das Praktikum ist in Form eines softwaretechnischen Phasenmodells organisiert. Das Praktikum kann in die Diplomprüfung eingebracht werden.
Zu entwickelnde Artefakte:
- Scannerspezifikation
- Parser mit rekursivem Abstieg
- abstrakte Syntax/Baumaufbau
- Symboltabelle
- attributierte Grammatik zur Typprüfung
- Codegenerierung
- elementare Programmanalysen/Optimierungen
Am Ende soll ein vollständiger, lauffähiger, getesteter Compiler stehen.
Zeitplan
Die Vorbesprechung findet am 14. April 2010 um 15:45 Uhr im AVG (Gebäude 50.41) Raum 207 statt. Dort werden wir die genaue Gruppeneinteilung und weitere Termine festlegen.
Wir treffen uns einmal wöchentlich um eine Einführung in die Themen zu geben (ca. 45 Minuten). Dabei wird auch auf Fragen und Probleme eingegangen. Danach können die Gruppen unter sich Planen und Implementieren.
Ort: 2. Stock im AVG (Gebäude 50.41) Seminarraum 207
Datum | Ort | Thema | Unterlagen |
---|---|---|---|
14.4. (15:45h) | AVG 207 | Organisatorisches, Einleitung | [Folien] |
21.4. (15:45h) | AVG 207 | Lexer | [Folien] |
28.4. (15:45h) | AVG 207 | Parser | [Folien] |
05.5. (15:45h) | AVG 207 | AST-Aufbau | [Folien] |
12.5. (15:45h) | AVG 207 | Semantische Analyse | [Folien] |
19.5. (15:45h) | AVG 207 | Firm Aufbau | [Folien] |
02.6. (15:45h) | AVG 207 | Datenflussanalyse, Konstantenfaltung | [Folien] |
09.6. (15:45h) | AVG 207 | Datenflussanalyse, Elimination gemeinsamer Teilausdrücke | [Folien] |
23.6. (15:45h) | AVG 207 | Java Bytecode, Jasmin Assembler | [Folien] |
30.6. (15:45h) | AVG 207 | Bytecode Backend | [Folien] |
07.7. (15:45h) | AVG 207 | Informationen zur Abschlusspräsentation | [Folien] |
Wiki
Fragen und Antworten, Diskussionen...
In unserem Wiki werden Materialien, Tips und Tricks zusammengetragen. Es ist gleichzeitig auch eine Diskussionsplatform damit ihr euch über Erfahrungen und Probleme austauschen könnt.
Wiki
Übungsblätter
Übungsblätter PDF | ||
---|---|---|
14.04.2010 | Einarbeiten | Download |
18.04.2010 | MiniJava Sprachbericht (veraltet!) | Download |
21.04.2010 | Lexer | Download |
26.04.2010 | MiniJava Sprachbericht Version 3.1 | Download |
28.04.2010 | Parser | Download |
29.04.2010 | MiniJava Sprachbericht Version 3.2 | Download |
5.05.2010 | AST-Aufbau, Pretty-Printer | Download |
12.05.2010 | Blatt 4 Version 2 - Pretty-Printer etwas klarer formuliert | Download |
17.05.2010 | Blatt 4 Version 3 - Beispiel repariert (Präzedenz von unärem Operator und Arrayzugriff) | Download |
12.05.2010 | Blatt 5 | Download |
19.05.2010 | Blatt 6 | Download |
02.06.2010 | Blatt 7 | Download |
09.06.2010 | Blatt 8 | Download |
23.06.2010 | Blatt 9 | Download |
30.06.2010 | Blatt 10 | Download |
Veranstalter
Lehrstuhlinhaber |
---|
Prof. Gregor Snelting |
Ehemalige Mitarbeiter |
---|
Dipl.-Inform. Matthias Braun |
Dipl.-Inform. Sebastian Buchwald |