Skip to main content.

Praktikum Optimierende Compiler

Bereich
Computer Microsystems
Fachrichtung
Technische Informatik, Elektrotechnik/Datentechnik
Art
Praktikum
Credits
3 CP
Prüfer
Andreas Koch
Betreuer
Jens Huthmann, Julian Oppermann
Voraussetzungen
Grundkenntnisse Algorithmen und Datenstrukturen, Java, Rechnerarchitektur (erworben z.B. durch Technische Grundlagen der Informatik II),
Besuch der parallel stattfindenden Vorlesung Compiler 2

Inhalt
In diesem Praktikum parallel zur Vorlesung Compiler 2 wird ein bestehender Compiler für Bantam, einer Untermenge von Java, schrittweise um verschiedene Optimierungen erweitert. Die Entwicklungsarbeiten selbst werden dabei in Java durchgeführt. Weitere Informationen zu Bantam finden sich unten und auf http://www.bantamjava.com. Grundlagen der Sprache und des Compilers werden in der Vorlesung vorgestellt, für die für das Praktikum erforderlichen Detailkenntnisse ist aber das Verständnis des englischsprachigen Lab Manuals (siehe unten) erforderlich. Im Praktikum werden allerdings andere Aufgaben als im Lab-Manual beschrieben bearbeitet.

Literatur
Engineering a Compiler von Keith D. Cooper, Linda Torczon
Advanced Compiler Design and Implementation von Steven S. Muchnick
Compilers: Principles, Techniques, and Tools (2. Auflage!) von Aho, Lam, Sethi und Ullman
• Ausgewählte wissenschaftliche Veröffentlichungen

Aufgaben für praktische Programmierarbeiten

1. Aufgabe: Interaktive Oberfläche und CFG Ausgabe Abgabetermin 8.5.2013
2. Aufgabe: Datenflussanalyse Abgabetermin 26.5.2013
3. Aufgabe: Rückwandlung aus SSA Form mit Briggs Abgabetermin 16.6.2013
4. Aufgabe: Optimierung mittels DVNT Abgabetermin 30.6.2013
5. Aufgabe: CP, DCE, CSP und LICM Abgabetermin 17.7.2013

Materialsammlung für praktische Arbeiten

Grundlagen für das Programmierprojekt

Ausführbares Grundgerüst des Bantam-Compilers (Basis für Praktikum!) 02.07.13: Update
Kurzanleitung zur Verwendung und Erweiterung des Bantam Grundgerüsts
Auszug aus Java-Doc zur ESA-Version des Bantam-Compilers 02.07.13: Update
Beispielprogramme in Bantam Java
Testprogramm zur Live-Analyse

Original-Compiler und Dokumentation

Lab Manual für die hier verwendete erweiterte Sprachversion
Java-Doc des Compiler APIs
Quellcode (unvollständig) des Bantam-Compilers

Für Bantam modifizierter MIPS-Simulator SPIM

Quellcode des für Bantam modifizierten MIPS-Simulators SPIM Compile mit cd spim; make
Binary des für Bantam modifizierten MIPS-Simulators SPIM für Linux
Binary des für Bantam modifizierten MIPS-Simulators SPIM für Windows (Cygwin)

Ausgewählte wissenschaftliche Veröffentlichungen als Hintergrundmaterial

Siehe Vorlesung Compiler 2.