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.