Vorlesungsankündigung

(Wintersemester 1997/98)

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\3 man zum Beispiel, da\3 sich die Bedingung einer {\bf if}--Anweisung stets zu {\bf True} auswertet, kann man die Abfrage einsparen und die gesamte Anweisung durch ihren {\bf then}--Teil 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, funktionale 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.

Vorlesung:
Mittwoch 12-14, E 44
Donnerstag 12-14, E 44

Übung:
Donnerstag 14-16, HS 7