The Kleene Algebra of Nested Pointer Structures: Theory and Applications

  • Software controlled systems more and more become established in our daily life. Thus, the probability to be confronted with system crashes, breakdowns or erroneous behaviour due to slovenly programmed code is increased considerably. While this may only be annoying for electronic entertainment products it could be dangerous to life in traffic and nuclear power plant control systems or medical tools. Applications from all these areas require a formal software development process to assure correctness. Although there are several methods to achieve this goal in general, verification and development of correct pointer algorithms, which are most susceptible to errors, have to a large extent defied a general formal treatment. In this thesis this insufficiency is dealt with in two ways. First, an abstract calculus for the treatment of labeled graphs and pointer structures is presented. The framework is based on Kleene algebra, which despite its simple structure has been successfully applied toSoftware controlled systems more and more become established in our daily life. Thus, the probability to be confronted with system crashes, breakdowns or erroneous behaviour due to slovenly programmed code is increased considerably. While this may only be annoying for electronic entertainment products it could be dangerous to life in traffic and nuclear power plant control systems or medical tools. Applications from all these areas require a formal software development process to assure correctness. Although there are several methods to achieve this goal in general, verification and development of correct pointer algorithms, which are most susceptible to errors, have to a large extent defied a general formal treatment. In this thesis this insufficiency is dealt with in two ways. First, an abstract calculus for the treatment of labeled graphs and pointer structures is presented. The framework is based on Kleene algebra, which despite its simple structure has been successfully applied to a variety of different problems. Simplicity and succinctness is inherited directly by the pointer Kleene algebra defined here. It enables a compact representation without preventing access to the internal structure. We introduce higher-level operators to describe reachability constraints, allocation, selection and projection. Localization properties that allow restricting the effects of modifications to particular parts of the memory are proved. A second part presents applications of pointer Kleene algebra to the software development process. The algebra is used as formal basis for a transformation system to derive correct pointer algorithms from functional specifications. To cover the whole scope from specification to implementation this method is extended by a general transformation scheme to create efficient imperative algorithms. As a further application it is shown that pointer Kleene algebra can also serve as an algebraic model behind a Hoare-style verification system for algorithms on linked data structures.show moreshow less
  • Softwaregesteuerte Systeme finden mehr und mehr Eingang in unser tägliches Leben. Damit steigt auch entscheidend die Wahrscheinlichkeit, auf Grund von schlampig programmiertem Code mit Systemabstürzen, Ausfällen und fehlerhaftem Verhalten konfrontiert zu werden. Während dies bei Produkten aus der Unterhaltungselektronik nur ärgerlich sein mag, kann es bei Kontrollsystemen für den Verkehr und für Kernkraftwerke oder bei medizinischen Geräten lebensgefährlich sein. Anwendungen aus diesen Gebieten verlangen nach einem formalen Software-Entwicklungsprozess zur Gewährleistung der Korrektheit. Obwohl es einige Methoden zur Erlangung dieses Zieles gibt, haben sich die Verifikation und die Entwicklung korrekter Zeigeralgorithmen einer allgemeinen, formalen Behandlung weitgehend widersetzt. In dieser Arbeit werden diese Unzulänglichkeiten in zweierlei Hinsicht behandelt. Zuerst wird ein abstrakter Kalkül zur Behandlung von markierten Graphen und Zeigerstrukturen vorgestellt. Dieses SystemSoftwaregesteuerte Systeme finden mehr und mehr Eingang in unser tägliches Leben. Damit steigt auch entscheidend die Wahrscheinlichkeit, auf Grund von schlampig programmiertem Code mit Systemabstürzen, Ausfällen und fehlerhaftem Verhalten konfrontiert zu werden. Während dies bei Produkten aus der Unterhaltungselektronik nur ärgerlich sein mag, kann es bei Kontrollsystemen für den Verkehr und für Kernkraftwerke oder bei medizinischen Geräten lebensgefährlich sein. Anwendungen aus diesen Gebieten verlangen nach einem formalen Software-Entwicklungsprozess zur Gewährleistung der Korrektheit. Obwohl es einige Methoden zur Erlangung dieses Zieles gibt, haben sich die Verifikation und die Entwicklung korrekter Zeigeralgorithmen einer allgemeinen, formalen Behandlung weitgehend widersetzt. In dieser Arbeit werden diese Unzulänglichkeiten in zweierlei Hinsicht behandelt. Zuerst wird ein abstrakter Kalkül zur Behandlung von markierten Graphen und Zeigerstrukturen vorgestellt. Dieses System basiert auf Kleene-Algebra, welche trotz ihres einfachen Aufbaus erfolgreich auf eine Vielzahl unterschiedlicher Problemstellungen angewendet werden konnte. Die Einfachheit und Prägnanz wird direkt von der hier definierten Zeiger-Kleene-Algebra geerbt. Diese ermöglicht eine kompakte Darstellung, ohne den Zugriff auf interne Strukturen zu verhindern. Auf einer höheren Ebene werden Operatoren zur Beschreibung von Erreichbarkeit, Speicherreservierung, Selektion und Projektion eingeführt. Damit werden Eigenschaften zur lokalen Einschränkung von Abänderungen auf bestimmte Teile des Speichers bewiesen. In einem zweiten Teil werden Anwendungen der Zeigeralgebra in der Softwareentwicklung von Algorithmen vorgestellt. Die Algebra wird als formale Grundlage für ein Transformationssystem zur Herleitung korrekter Zeigeralgorithmen aus funktionalen Spezifikationen benutzt. Um den vollständigen Bereich von der Spezifikation bis zur Implementierung abzudecken wurde diese Methode um ein allgemeines Transformationsschema zur Erzeugung effizienter imperativer Algorithmen erweitert. In einer weiteren Anwendung wird gezeigt, daß die Zeigeralgebra auch als algebraisches Modell für ein auf dem Hoare-Kalkül basierendes Verifikationssystem für Algorithmen auf verzeigerten Datenstrukturen dienen kann.show moreshow less

Download full text files

Export metadata

Statistics

Number of document requests

Additional Services

Share in Twitter Search Google Scholar
Metadaten
Author:Thorsten EhmGND
URN:urn:nbn:de:bvb:384-opus-896
Frontdoor URLhttps://opus.bibliothek.uni-augsburg.de/opus4/33
Title Additional (German):Die Kleene Algebra der Zeigerstrukturen: Theorie und Anwendungen
Advisor:Bernhard Möller
Type:Doctoral Thesis
Language:English
Publishing Institution:Universität Augsburg
Granting Institution:Universität Augsburg, Fakultät für Angewandte Informatik
Date of final exam:2003/12/16
Release Date:2005/01/11
Tag:Kleene Algebra; Zeigerstrukturen; Entwicklung korrekter Programme; Relationale Algebra
Kleene algebra; pointer struktures; correct program construction; relational algebra
GND-Keyword:Softwareentwicklung; Kleene-Algebra; Relationenalgebra
Institutes:Fakultät für Angewandte Informatik
Fakultät für Angewandte Informatik / Institut für Informatik
Dewey Decimal Classification:0 Informatik, Informationswissenschaft, allgemeine Werke / 00 Informatik, Wissen, Systeme / 004 Datenverarbeitung; Informatik