Praktikum Optimierende Compiler
- Bereich
- Computer Microsystems
- Fachrichtung
- Technische Informatik, Elektrotechnik/Datentechnik
- Art
- Praktikum
- Credits
- 3 CP
- Prüfer
- Andreas Koch
- Betreuer
- Jens Huthmann, Florian Stock
- 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: Beispielprogramm in Bantam-Java
triangle_examples.zip
2. Aufgabe: Interaktive Oberfläche und CFG Ausgabe
3. Aufgabe: Datenflussanalyse und erste Optimierungen
4. Aufgabe: Weitere Datenflussanalysen und Optimierungen
5. Aufgabe: Rückwandlung aus SSA Form mit Briggs
6. Aufgabe: Optimierung mittels DVNT
Materialsammlung für praktische Arbeiten
Grundlagen für das Programmierprojekt
Ausführbares Grundgerüst des Bantam-Compilers (Basis für Praktikum!) 13.8.2012: 2. Update, benötigt Java 1.7
Kurzanleitung zur Verwendung und Erweiterung des Bantam Grundgerüsts
Auszug aus Java-Doc zur ESA-Version des Bantam-Compilers 11.7.2012: Update
Beispielprogramme in Bantam Java
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.