Neuigkeiten
Voranmeldung
Die Voranmeldung ist nicht mehr möglich.
Themen
Im Compilerbaupraktikum entwickeln Teams von 4–5 Studenten einen Compiler für eine imperative Teilmenge von Java. Zielsprache ist x86-64-Bit-Assembler. Dabei kommen die Techniken und Werkzeuge aus der Veranstaltung "Sprachtechnologie und Compiler" zum Einsatz. Das Praktikum ist in Form eines softwaretechnischen Phasenmodells organisiert.
Zu entwickelnde Artefakte:
- Lexer
- Parser mit rekursivem Abstieg zum AST-Aufbau
- Attributierte Grammatik zur Semantik- und Typprüfung
- Optimierungen auf graphbasierter SSA-Zwischensprache
- Codegenerierung für x86 mit Baummustern
Am Ende soll ein vollständiger, lauffähiger, getesteter Compiler stehen.
Praktikum
Umfang: 4 SWS (6 ECTS).
Das Praktikum ist prüfbar.
Wir empfehlen, das Praktikum erst zu belegen, nachdem die Veranstaltung "Sprachtechnologie und Compiler" erfolgreich abgeschlossen wurde.
Um das Praktikum für das Bachelorstudium anzurechnen oder während des Bachelorstudiums für das Masterstudium vorzuziehen, werden jeweils Genehmigungen des Bachelorprüfungsausschusses benötigt. Nähere Informationen dazu finden sich hier unter den Punkten "Mastermodule im Bachelor" und "Vorzugsleistungen aus Master Informatik im Bachelor Informatik". Da das Compilerpraktikum eine Masterveranstaltung ist, werden Plätze zunächst an Masterstudenten vergeben und nur nachrangig an Bachelorstudenten.
Vorbesprechung
Die Vorbesprechung findet am 17. Oktober 2016 um 14:00 Uhr im Infobau (Gebäude 50.34) Raum -119 statt. Dort werden wir die genaue Gruppeneinteilung und weitere Termine festlegen.
Zeitplan
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: Untergeschoss im Infobau (Gebäude 50.34), Seminarraum -119
Datum | Ort | Thema | Unterlagen |
---|---|---|---|
17.10.2016 14:00 Uhr | Infobau -119 | Organisatorisches, Einleitung | Folien |
24.10.2016 14:00 Uhr | Infobau -119 | Lexer | Folien |
31.10.2016 14:00 Uhr | Infobau -119 | Parser | Folien |
07.11.2016 14:00 Uhr | Infobau -119 | AST-Aufbau | Folien |
14.11.2016 14:00 Uhr | Infobau -119 | Semantische Analyse | Folien |
21.11.2016 14:00 Uhr | Infobau -119 | FIRM-Aufbau | Folien jFirm libfirm yComp |
28.11.2016 14:00 Uhr | Infobau -119 | FIRM-Aufbau | Folien |
05.12.2016 14:00 Uhr | Infobau -119 | Optimierung: Datenflussanalyse | Folien |
12.12.2016 14:00 Uhr | Infobau -119 | Codeerzeugung | Folien |
19.12.2016 14:00 Uhr | Infobau -119 | Codeerzeugung, Organisation | Folien SDL-Wrapper Beispielprogramm |
09.01.2017 14:00 Uhr | Infobau -119 | Zwischenstand Codeerzeugung | Folien |
16.01.2017 14:00 Uhr | Infobau -119 | Backend, Infos zur Präsentation | Folien |
23.01.2017 14:00 Uhr | Infobau -119 | Feedback Codeerzeugung | |
30.01.2017 14:00 Uhr | Infobau -119 | Infos zum Optimierwettbewerb | Folien |
06.02.2017 14:00 Uhr | Infobau -119 | Organisation, Abschlussarbeiten | Folien |
14.02.2017 10:00 Uhr | HS -101, Infobau | Abschlusspräsentationen | |
15.02.2017 18:30 Uhr | Vogelbräu Karlsruhe | Abschlusstreffen |
Übungsblätter
Übungsblätter PDF | ||
---|---|---|
17.10.2016 | Organisation, Einarbeitung | Blatt 1 MiniJava-Sprachbericht |
24.10.2016 | Lexer | Blatt 2 Beispiel-Eingabe sowie Beispiel-Ausgabe |
31.10.2016 | Parser | Blatt 3 |
7.11.2016 | AST-Aufbau | Blatt 4 Beispiel-Eingabe sowie Beispiel-Ausgabe |
14.11.2016 | Semantische Analyse | Blatt 5 |
21.11.2016 | FIRM-Aufbau | Blatt 6 |
28.11.2016 | FIRM-Aufbau | Blatt 7 |
5.12.2016 | Optimierung | Blatt 8 |
12.12.2016 | Codeerzeugung | Blatt 9 |
Veranstalter
Ehemalige Mitarbeiter |
---|
Dr.-Ing. Manuel Mohr |
Dipl.-Inform. Sebastian Buchwald |