Restrukturierung von Programmen



Ist die Ausführung eines vorliegenden Programms auf einem Rechner des gewünschten Typs nicht effizient oder wegen spezifischer Eigenarten des Rechners gar nicht möglich, wird versucht, das Programm in ein semantisch äquivalentes Programm mit den gewünschten Eigenschaften zu transformieren. Im Falle prozeduraler Programmiersprachen steht dabei wegen des erreichbaren Parallelitätsgrades die Restrukturierung ineinander geschachtelter Schleifen im Vordergrund.

Die Vorlesung beschäftigt sich im wesentlichen mit Techniken zur Restrukturierung geschachtelter Schleifen sowie mit Kriterien für die parallele Ausführbarkeit verschiedener Instanzen des Schleifenkörpers. Ein wichtiger Gesichtspunkt ist dabei die Optimierung diverser Parameter des Transformationsprozesses im Hinblick auf die Architekturklasse sowie eventuell bekannte Hardware-Kenngrößen der Zielmaschine.

Die Vorlesung richtet sich an Studierende im Hauptstudium Informatik (Diplom). Hilfreich für das Verständnis mancher Vorlesungsinhalte wären Kenntnisse aus der linearen Optimierung.


Literatur

U. Banerjee: Loop transformations for restructuring compilers. Kluwer Academic Publishers, 1993.

U. Banerjee: Loop parallelization. Kluwer Academic Publishers, 1994.