HOME | ENGLISH | IMPRESSUM | KIT

Compilerpraktikum

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 UhrInfobau -119 Organisatorisches, Einleitung Folien
24.10.2016 14:00 UhrInfobau -119 Lexer Folien
31.10.2016 14:00 UhrInfobau -119 Parser Folien
07.11.2016 14:00 UhrInfobau -119 AST-Aufbau Folien
14.11.2016 14:00 UhrInfobau -119 Semantische Analyse Folien
21.11.2016 14:00 UhrInfobau -119 FIRM-Aufbau Folien jFirm libfirm yComp
28.11.2016 14:00 UhrInfobau -119 FIRM-Aufbau Folien
05.12.2016 14:00 UhrInfobau -119 Optimierung: Datenflussanalyse Folien
12.12.2016 14:00 UhrInfobau -119 Codeerzeugung Folien
19.12.2016 14:00 UhrInfobau -119 Codeerzeugung, Organisation Folien SDL-Wrapper Beispielprogramm
09.01.2017 14:00 UhrInfobau -119 Zwischenstand Codeerzeugung Folien
16.01.2017 14:00 UhrInfobau -119 Backend, Infos zur Präsentation Folien
23.01.2017 14:00 UhrInfobau -119 Feedback Codeerzeugung
30.01.2017 14:00 UhrInfobau -119 Infos zum Optimierwettbewerb Folien
06.02.2017 14:00 UhrInfobau -119 Organisation, Abschlussarbeiten Folien
14.02.2017 10:00 UhrHS -101, Infobau Abschlusspräsentationen
15.02.2017 18:30 UhrVogelbrä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

Wissenschaftliche Mitarbeiter
Sebastian Buchwald
Manuel Mohr