Vorlesungsankündigung

(Wintersemester 1999/2000)

Prof. Dr. Helmut Seidl:

Analyse von Programmen

Prof. Dr. Helmut Seidl - Übersetzerbau - Informatik

Compiler sollen für ihre Eingabeprogramme nicht nur korrekten Code erzeugen, sondern auch solchen, der möglichst effizient auf der jeweiligen Zielmaschine ausführbar ist. Geschickte Codeerzeugung benötigt wiederum möglichst präzise Informationen über das jeweils zu übersetzende Programm. Weiß man zum Beispiel, dass sich die Bedingung einer if-Anweisung stets zu True auswertet, kann man die Abfrage einsparen und die gesamte Anweisung durch ihren thenTeil ersetzen. Ähnliche Optimierungen gibt es auch bei funktionalen oder logischen Programmen. Dabei gilt ganz grob die folgende Regel: je ``deklarativer'' die Programmiersprache, desto umständlicher ist der naiv erzeugte Code, desto wichtiger sind folglich gute Analysen.

Die Vorlesung gibt eine Einführung in Verfahren, wie der Compiler automatisch Informationen über ein Programm gewinnen kann. Anhand einer Reihe von Beispielen erläutern wir die Besonderheiten der Analysemethoden für imperative, objektorientierte und logische Programmiersprachen. Einerseits studieren wir dabei die algorithmischen Eigenschaften der vorgestellten Verfahren. Andererseits interessieren wir uns für Möglichkeiten, ihre Korrektheit zu beweisen. Zu diesem Zweck werden wir ein generelles Schema kennenlernen, das es gestattet, leicht neue korrekte Analysen zu erfinden.

Die Vorlesung ist dabei nicht nur theoretisch ausgelegt. Vielmehr wird die Möglichkeit geboten, mit verschiedenen Analyse-Problemen und -Verfahren zu experimentieren. Zu diesem Zweck stehen Analyse-Generatoren zur Verfügung, die das allgemeine Schema für konkrete Programmiersprachen umsetzen.



Vorlesung:
Montag 12-14, V E 45
Dienstag 12-14, V 302

Übung:
Mittwoch 12-14, V 301