Vorlesungsankündigung
(Wintersemester 1997/98)
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