Die Studierenden erhalten ein umfassendes Verständnis der theoretischen Grundlagen und praktischen Anwendungen von Programmanalyse und -optimierung im Übersetzerbau. Sie lernen, die Möglichkeiten und Grenzen automatischer Analysen und Optimierungen einzuschätzen und sind im Wissen darum in der Lage, über Anwendungen im Übersetzerbau hinaus, Software so zu schreiben, dass, wo möglich, Entwurfsziele wie Klarheit, Wartbarkeit, Robustheit vor unnötigen Effizienzüberlegungen in den Vordergrund treten.
Die Vorlesung vertieft in Theorie und Praxis das Gebiet Programmanalyse und -optimierung, das ein wesentliches Forschungsgebiet im Bereich Programmiersprachen und Übersetzerbau ist. Dabei spannt die Vorlesung den Bogen von den theoretischen Grundlagen bis zur praktischen Anwendung und der automatischen Generierung von Programmanalysen und Optimierungen. Im Übungsteil werden die in der Vorlesung behandelten Themen in theoretischen und praktischen Übungen eigenständig vertieft. Für die praktischen Übungen wird dabei die Static Analysis Tool Integration Engine SATIrE eingesetzt; ein System, das diverse Werkzeuge für die Analyse und Optimierung von objektorientierten Sprachen integriert, darunter den Program Analyzer Generator (PAG). Die Vorlesung behandelt insbesondere folgende Themen und deren Realisierung mithilfe von SATIrE
:
- Grundlagen und Anwendungen von Programmanalyse und Optimierung
- Datenflussanalyse (vorwärts, rückwärts, existentiell, universell)
- Datenflussanalyserahmen (intraprozedural, interprozedural)
- Maschinenunabhängige Optimierungen, insbesondere syntaktische und semantische Redundanzelimination
- Zeiger-, Alias- und Geflechtanalysen
- Analyse und Optimierung objektorientierter Programme
- Generatoren für Analyse und Optimierung, speziell SATIrE
- ...
Die Vorbesprechung zur Vorlesung findet am Mittwoch, den 13.10.2010, von 16:15 Uhr bis 17:00 Uhr in der Bibliothek E185.1, Argentinierstr. 8, 4. Stock (Mitte) statt. Die erste Vorlesung findet dann am Mittwoch, den 27.10.2010, von 16:15 bis 17:45 im HS14, Karlsplatz 13, statt.