Institute of Computer Languages
Compilers and Languages Group
Talks 2005 - Wolf Zimmermann
The Compilers and Languages Group invites you to a talk given by
Prof. Dr. Wolf Zimmermann
(Universität Halle-Wittenberg, Germany)
on
Statische Prüfung von Komponentenprotokollen in Komponentensystemen
Date: |
Monday, January 10, 2005
|
---|
Time: |
16:00 (c.t.) |
---|
Location: |
TU Wien, Freihausgebäude, FH HS 4,
Wiedner Hauptstraße 8, Turm B, yellow area,
2nd upper floor |
---|
Abstract:
Eine wichtige Frage bei der Konstruktion von komponentenbasierten
Softwaresystemen ist die Frage, ob die Komposition von Komponenten
passt. Dies ist nicht nur eine Frage, ob Komponentenschnittstellen
typkonform benutzt werden. Oft spielt auch die Reihenfolge der Aufrufe
von Prozeduren in Schnittstellen eine entscheidende Rolle. Ziel ist,
dass die Erfüllung solcher Reihenfolgen bestimmte Eigenschaften einer
Komponente wie z.B. Absturzfreiheit garantiert. Beginnend mit
Nierstrasz gibt es eine ganze Reihe von Arbeiten, die sich mit dieser
Problematik befassen: Zulässige Aufrufreihenfolgen an Schnittstellen
einer Komponente werden durch endliche Automaten spezifiert. Ausserdem
wird durch endliche Transduktoren angegeben wie aus Aufrufe an eine
Komponentenschnittstelle diese in Aufrufe an andere
Komponentenschnittstellen transformiert wird. Dadurch kann jede
Verbindung zwischen Komponenten geprüft werden. Diese Prüfung
entspricht dem Enthaltensseinproblem von regulüren Sprachen.
Im Vortrag wird gezeigt, dass diese lokalen Prüfungen im allgemeinen
Fall nicht ausreichend sind, um global Protokollverletzungen zu
vermeiden. Nur, wenn verschiedene Schnittstellen einer Komponente sich
nicht gegenseitig beeinflussen und das System keine rekursiven
Prozedurrückaufrufe (engl. call-backs) enthült, kann mit der obigen
Methode sichergestellt werden, dass keine Protokollverletzungen
stattfinden. Zudem wird gezeigt, dass bei Vorhandensein rekursiver
Aufrufe (insbesondere auch rekursive Prozedurrückaufrufe) die
Aufrufreihenfolgen an andere Komponenten nicht durch regulüre Sprachen
erfasst werden künnen, sondern kontextfreie Sprachen benötigt
werden. Damit entspricht die Prüfung, ob das Protokoll einer
Komponente in einem Komponentensystem erfüllt ist, dem Problem, ob
eine kontextfreie Sprache in einer regulüren Sprache enthalten
ist. Arbeiten beginnend mit Burkart und Steffen zeigen, dass dieses
Enthaltenseinsproblem ebenso effizient gelöst werden kann, wie das auf
regulären Sprachen. Abschliessend wird gezeigt, wie ohne vollständige
Kenntnis des Quellcodes an Hand von geeigneten
Auslieferungsbeschreibungen von Komponenten kontextfreie Grammatiken
konstruiert werden, die die Aufrufreihenfolgen an eine Komponente
beschreiben.
Gemeinsame Arbeit mit Michael Schaarschmidt und Heinz Schmidt
About Prof. Dr. Wolf Zimmermann:
Wolf Zimmermann graduated (1987) and obtained a PhD in Computer Science
(1990) from the University of Karlsruhe (D). Then he was Research Fellow
at the International Computer Science Institute in Berkeley. After
returning to Karlsruhe (1991) he became 1992 lecturer at the University
of Karlsruhe where he habilitated 1998. He became 1998 visiting
professor at the Martin-Luther University Halle-Wittenberg (D) and 1999
at the Institute National Polytechnique Grenoble (F). At 2000 he become
professor at the Martin-Luther University Halle-Wittenberg (D) where he
holds the chair of Software-Engineering and Programming Languages. Wolf
Zimmermann is member of the editorial board of the Journal of Universal
Computer Science and the IEE Proceedings Software. He was co-chair on
several conferences and workshops and founded together with Jens Knoop
the Workshops on Compiler Optimization meets Compiler Verification.