HOME | ENGLISH | IMPRESSUM | KIT

Compilerpraktikum

Neuigkeiten

25.10.2021 Am Mi, 3.11. findet um 14 Uhr im SR-119 ein Nachholtermin für den 1.11. statt.
22.7.2021 Die Voranmeldung ist nun eröffnet.

Voranmeldung

Wenn sie sich noch anmelden möchten, schreiben Sie bitte eine E-Mail an die Betreuer.

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.

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: 6 ECTS

Das Praktikum ist als eigentständiges Modul im Masterstudium prüfbar. Es ist Teil des Vertiefungsfaches "Softwaretechnik und Übersetzerbau".

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 18. Oktober 2018 um 14:00 Uhr im Infobau (Gebäude 50.34) Raum -119 statt. Dort werden wir die genaue Gruppeneinteilung 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.

Datum Ort Thema Unterlagen
18.10.2021 14:00 UhrInfobau -119 Einführung Folien
25.10.2021 14:00 UhrInfobau -119 Lexer, Parser Folien, Folien
03.11.2021 14:00 UhrInfobau -119 AST-Aufbau Folien
08.11.2021 14:00 UhrInfobau -119 Semantische Analyse Folien
15.11.2021 14:00 UhrInfobau -119 FIRM-Aufbau Folien
Update: neue Folie zu Klassentypen
22.11.2021 14:00 UhrInfobau -119 FIRM-Aufbau Folien SSA-Aufbau-Algorithmus
29.11.2021 14:00 UhrInfobau -119 Optimierung: Datenflussanalyse Folien Auflistung von Compileroptimierungen
06.12.2021 14:00 UhrInfobau -119 Codeerzeugung Folien
13.12.2021 14:00 UhrInfobau -119 Codeerzeugung Folien
20.12.2021 14:00 UhrInfobau -119 Fällt aus
10.01.2022 14:00 UhrInfobau -119 Codeerzeugung Folien
17.01.2022 14:00 UhrInfobau -119 Codeerzeugung Folien
24.01.2022 14:00 UhrInfobau -119 Codeerzeugung Folien
31.01.2022 14:00 UhrInfobau -119 Organisation Folien
10.02.2022 14:00 UhrInfobau -102 Abschlusspräsentationen Folien

Übungsblätter

Übungsblätter PDF
18.10.2021 Organisation, Einarbeitung Blatt 1
MiniJava-Sprachbericht (Stand 18.10.21)
25.10.2021 Lexer Blatt 2
Beispiel-Eingabe sowie Beispiel-Ausgabe
25.10.2021 Parser Blatt 3
3.11.2021 AST-Aufbau Blatt 4
Updates: EmptyStatement in --print-ast
Beispiel-Eingabe sowie Beispiel-Ausgabe
08.11.2021 Semantische Analyse Blatt 5
15.11.2021 FIRM-Aufbau Blatt 6
22.11.2021 FIRM-Aufbau Blatt 7 (Stand 03.12.21)
29.11.2021 Optimierung Blatt 8
06.12.2021 Codeerzeugung Blatt 9

Veranstalter

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