Universität Karlsruhe
Fakultät für Informatik
Institut für Programmstrukturen
und Datenorganisation


Prof. Dr. Gerhard Goos
Dr. Uwe Assmann
Boris Boesler
Thilo Gaul
Daniela Genius
Sabine Glesner
Dr. Welf Löwe
Andreas Ludwig

Proseminar

Verfahren zur Programmanalyse


SS 1999




Allgemeine Hinweise

Inhalt

Will man effiziente und zuverlässige Programme erstellen, so muß man diese nicht nur schreiben, sondern sollte außerdem in der Lage sein, ihre wichtigen Eigenschaften ermitteln zu können. Das genau ist die Aufgabe der Programmanalyse. Die Ergebnisse von Programmanalyseverfahren werden in verschiedenen Bereichen wie beispielsweise der Optimierung von Programmen eingesetzt: Kann man z.B. nachweisen, daß ein Ausdruck in einem Programm immer einen konstanten Wert annimmt, so muß er nicht in jedem Programmablauf neu berechnet werden, sondern kann direkt mit einer Konstante übersetzt werden. Grundlage für diese Analyseverfahren sind mathematische Hilfsmittel, für deren Verständnis Kenntnisse aus dem Grundstudium ausreichen.

Grundlage des Proseminars ist ein aktuelles, offiziell noch nicht erschienenes Lehrbuch (Nielson/Nielson/Hankin: Principles of Program Analysis). Mit unserer Hilfe sollen im Proseminar die Inhalte der einzelnen Kapitel erarbeitet und in Vorträgen vorgestellt werden.

Organisation

Wöchentlicher Termin
Das Proseminar findet mittwochs, 11:30-13:00 Uhr, im Seminarraum 062 im Rechenzentrum statt.
Vorträge
Anhand des oben genannten Lehrbuchs bzw. anhand von Kopien des jeweils relevanten Kapitels sollen Vorträge erarbeitet werden, die den Stoff eines Kapitels bzw. eines Teils davon umfassen, abhängig vom jeweiligen Umfang. Die Vorträge sollten nicht länger als eine Stunde dauern, um im Anschluß daran die Möglichkeit zur Diskussion und zu Fragen zu geben.
Vortragsfolien
Der Vortrag wird anhand von Folien gehalten. Es können dabei ungefähr 25 Folien verwendet werden, die mindestens eine Woche vor dem Vortrag mit dem jeweiligen Betreuer durchgesprochen werden sollten.
Schriftliche Ausarbeitung
Außerdem wird eine schriftliche Ausarbeitung des Vortrags erwartet, die nicht mehr als 12 Seiten betragen sollte. Diese Ausarbeitung soll mit dem Textverarbeitungssystem Latex geschrieben werden, um ein einheitliches Format für das Proseminar zu gewährleisten. Falls nötig, werden die Betreuer bei der Einarbeitung in Latex Unterstützung anbieten.

Eine Vorversion der schriftlichen Ausarbeitung sollte 9 Tage vor dem Vortrag (also an dem Montag eineinhalb Wochen davor) dem Betreuer vorgelegt werden, um letzte Unklarheiten zu beseitigen. Die erste Version der Ausarbeitung wird einen Tag vor dem Vortrag (also dienstags) dem Betreuer gegeben, so daß dieser davon Kopien erstellen kann, die dann während des Vortrags jedem Teilnehmer vorliegen. Damit wird es allen Teilnehmern ermöglicht, die Vorträge nacharbeiten zu können.

Anwesenheitspflicht
Wir erwarten, daß alle Teilnehmer an jedem Vortrag anwesend sind.
Arbeitsunterlagen
Neben den Unterlagen, die nur den eigenen Vortrag betreffen, erhält jeder Teilnehmer folgendes:

Anhang A des Buches von Nielson/Nielson/Hankin, das die mathematischen Grundlagen zusammenfaßt.

Email-Adressen und Telefonnummern der Betreuer

(Anmeldung und allgemeine Fragen bitte an Sabine Glesner richten.)
Dr. Uwe Assmann Tel.: 608 - 6088 assmann@ipd.info.uni-karlsruhe.de
Boris Boesler Tel.: 608 - 6087 boesler@ipd.info.uni-karlsruhe.de
Thilo Gaul Tel.: 608 -7398 gaul@ipd.info.uni-karlsruhe.de
Daniela Genius Tel.: 608 - 4763 genius@ipd.info.uni-karlsruhe.de
Sabine Glesner Tel.: 608 - 7399 glesner@ipd.info.uni-karlsruhe.de
Dr. Welf Löwe Tel.: 608 - 4762 loewe@ipd.info.uni-karlsruhe.de
Andreas Ludwig Tel.: 608 - 4763 ludwig@ipd.info.uni-karlsruhe.de


Themen und Termine

Folgende Themen und Termine sind während des Sommersemesters 1999 vorgesehen:

1.
Einleitungsvortrag: Beispiele zur Programmanalyse, mathematische Grundlagen für das Proseminar
(Kapitel 1 + Anhang A)
Termin: 21.4.1999
Vortragende: Sabine Glesner
2.
Datenflußanalyse I: Typische Beispiele
(Kapitel 2, S. 33-52)
Termin: 28.4.1999
Vortragende: Daniela Genius
3.
Datenflußanalyse II: Theoretische Eigenschaften
(Kapitel 2, S. 52-63)
Termin: 12.5.1999
Vortragender: Christian Domsch
Betreuer: Ludwig
4.
Datenflußanalyse III: Monotone Frameworks
(Kapitel 2, S. 63-72)
Termin: 19.5.1999
Vortragender: Benedikt Schulz
5.
Steuerflußanalyse I: Beispiel-Analyse
(Kapitel 3, S. 139-151)
Termin: 26.5.1999
Vortragender: Sven Oberländer
Betreuer: Boesler / Gaul
6.
Steuerflußanalyse II: Theoretische Eigenschaften
(Kapitel 3, S. 152-164)
Termin: 2.6.1999
Vortragender:
Betreuer: Boesler / Gaul
7.
Abstrakte Interpretation I: Beispiele & Widening-Operatoren
(Kapitel 4, S. 205-223)
Termin: 9.6.1999
Vortragender: Boris Boesler
8.
Abstrakte Interpretation II: Narrowing-Operatoren & Galois-Verbindungen
(Kapitel 4, S. 223-239)
Termin: 16.6.1999
Vortragender: Dirk Heuzeroth
9.
Type & Effect Systems: Beispiele & theoretische Eigenschaften
(Kapitel 6, S. 277-294)
Termin: 23.6.1999
Vortragender: Holger Bär
10.
Algorithmen I: Standard-Algorithmen
(Kapitel 6, S. 1-20)
Termin: 30.6.1999
Vortragender: Stefan Mandel
Betreuer: Löwe
11.
Algorithmen II: Algorithmen für große dynamische Systeme
(Kapitel 6, S. 20-38)
Termin: 7.7.1999
Vortragender:
Betreuer: Löwe