Skip to main content.

Praktikum Optimierende Compiler

Bereich
Computer Microsystems
Fachrichtung
Technische Informatik, Elektrotechnik/Datentechnik
Art
Praktikum
Dozent
Andreas Koch
Voraussetzungen
Grundkenntnisse Algorithmen und Datenstrukturen, Java, Rechnerarchitektur (erworben z.B. durch Technische Grundlagen der Informatik II),
Besuch der parallel stattfindendenen Vorlesung Optimierende Compiler

Inhalt
Die komplizierten Architekturen moderner Prozessoren können in der Praxis nur noch durch den Einsatz hochgradig optimierender Compiler ausgenutzt werden. Innerhalb dieser Compiler hat sich daher stetig die Komplexität von der Erkennung der Quelltexte hin zu deren möglichst effizienter Umsetzung in Maschinen-Code verschoben. In der Lehrveranstaltung geht es um eine praktische Einführung in die dafür benötigten Algorithmen und Datenstrukturen. Nach einem Überblick über fundamentale Techniken wie Lexing und Parsing werden abstrakte Syntaxbäume und andere Zwischendarstellungen vorgestellt. Im Anschluss geht es dann um Analyse und Transformation dieser Darstellungen mit dem Ziel, optimierten Maschinen-Code zur Ausführung auf modernen Prozessoren zu erhalten. In diesem begleitenden Programmierprojekt zur Vorlesung Optimierende Compiler wird ein bestehender Compiler in Java schrittweise erweitert.

Literatur
Programming Language Processors in Java von David Watt und Deryck Brown
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

Credits
3 CP
Anmeldung
Für das Praktikum ist eine Anmeldung bis zum 25.04.2010, über das WebReg System unbedingt erforderlich. Bitte stellen Sie in jedem Fall sicher, dass Sie sich unabhängig davon, Ihrer Studienordnung entsprechend, rechtzeitig bei der für Sie zuständigen Stelle (ZPS, Fachbereich, etc.) zur Prüfung angemeldet haben!

Aufgaben für praktische Programmierarbeiten

1. Aufgabe: Interaktive AST-Analyse und Sprachbeschränkung

2. Aufgabe: Erzeugen von SSA-CFGs aus DAST

3. Aufgabe: Rückwandlung von SSA-CFG nach DAST

4. Aufgabe: Optimierung mittels DVNT und DCE

An die vier Pflichtaufgaben schliesst sich eine optionale Verbesserungsphase an, in der die Kommentare aus dem letzten Kolloquium noch berücksichtigt werden können. Hier könnten Sie auch weitergehende Optimierungen für eine potenzielle Notenverbesserung realisieren. Aber Obacht: Es ist besser, einen vollständig funktionierenden Compiler zu entwickeln, der nicht alle Optimierungen beherrscht, als einen, der zwar jede Menge Optimierungen kann, aber die Programme verhackstückt!

Bewertet wird die letzte uns am 02.08.2010, 23:59 Uhr MET DST vorliegende Fassung des Compilers.

Materialsammlung für praktische Arbeiten

Quellen des Triangle-Compilers und Beispielprogramme
Unterstützt den vollen Triangle-Sprachumfang, erweitert um Dateioperationen und höhere Speichergrenzen. Update: 03.05.2010

Ausgewählte wissenschaftliche Veröffentlichungen als Hintergrundmaterial

Siehe Vorlesung Optimierende Compiler.