HOME | ENGLISH | IMPRESSUM | KIT

Compilerpraktikum

Neuigkeiten

5.7.2018 Die Voranmeldung ist nun eröffnet.
5.10.2018 Die Einführungsveranstaltung wird um einen Block nach hinten auf 15.10.2018 15:45 Uhr verlegt.

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 aus attributtierter Grammatik
  • 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 15. Oktober 2018 um 15:45 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
15.10.2018 15:45 UhrInfobau -119 Einführung Folien
22.10.2018 14:00 UhrInfobau -119 Lexer Folien
29.10.2018 14:00 UhrInfobau -119 Parser Folien
05.11.2018 14:00 UhrInfobau -119 AST-Aufbau Folien
12.11.2018 14:00 UhrInfobau -119 Semantische Analyse Folien
19.11.2018 14:00 UhrInfobau -119 FIRM-Aufbau Folien Firm-Demo SSA-Aufbau-Algorithmus Firm Demo zum Herumspielen
Updates: Veraltete Knoten-Interfaces korrigiert
26.11.2018 14:00 UhrInfobau -119 FIRM-Aufbau Folien
03.12.2018 14:00 UhrInfobau -119 Optimierung: Datenflussanalyse Folien Auflistung von Compileroptimierungen
10.12.2018 14:00 UhrInfobau -119 Codeerzeugung Folien
17.12.2018 14:00 UhrInfobau -119 Codeerzeugung Folien
07.01.2019 14:00 UhrInfobau -119 Codeerzeugung Folien
14.01.2019 14:00 UhrInfobau -119 Codeerzeugung Folien Auflistung von Compileroptimierungen
21.01.2019 14:00 UhrInfobau -119 Codeerzeugung Folien
28.01.2019 14:00 UhrInfobau -119 Codeerzeugung Folien
04.02.2019 14:00 UhrInfobau -119 Organisation Folien
14.02.2017 15:45 UhrHS -101, Infobau Abschlusspräsentationen
14.02.2017 18:30 UhrVogelbräu Karlsruhe Abschlusstreffen

Übungsblätter

Übungsblätter PDF
15.10.2018 Organisation, Einarbeitung Blatt 1
MiniJava-Sprachbericht (Stand 23.11.18)
22.10.2018 Lexer Blatt 2
Beispiel-Eingabe sowie Beispiel-Ausgabe
29.10.2018 Parser Blatt 3
Updates: Fußnote zu Aufgabe 1.4, Modalitäten der Testabgabe
05.11.2018 AST-Aufbau Blatt 4 (Stand 6.11.)
Updates: EmptyStatement in --print-ast
Beispiel-Eingabe sowie Beispiel-Ausgabe
12.11.2018 Semantische Analyse Blatt 5
19.11.2018 FIRM-Aufbau Blatt 6
26.11.2018 FIRM-Aufbau Blatt 7
03.12.2018 Optimierung Blatt 8
10.12.2018 Codeerzeugung Blatt 9

Veranstalter

Wissenschaftliche Mitarbeiter
Sebastian Graf
Ehemalige Mitarbeiter
M.Sc. Andreas Fried