Results 1 
9 of
9
Reasoning about pointers in refinement calculus
 In 10th AsiaPacific Software Engineering Conference (APSEC'03
, 2003
"... Pointers are an important programming concept. They are used explicitely or implicitly in many programming languages. In particular, the semantics of objectoriented programming languages rely on pointers. We introduce a semantics for pointer structures. Pointers are seen as indexes and pointer fiel ..."
Abstract

Cited by 11 (2 self)
 Add to MetaCart
(Show Context)
Pointers are an important programming concept. They are used explicitely or implicitly in many programming languages. In particular, the semantics of objectoriented programming languages rely on pointers. We introduce a semantics for pointer structures. Pointers are seen as indexes and pointer fields are functions from these indexes to values. Using this semantics we turn all pointer operations into simple assignments and then we use refinement calculus techniques to construct a pointermanipulating program that checks whether or not a single linked list has a loop. We also introduce an induction principle on pointer structures in order to reduce complexity of the proofs. 1.
Functional pearl: Unfolding pointer algorithms
 Journal of Functional Programming
, 2001
"... A fair amount has been written on the subject of reasoning about pointer algorithms. There was a peak about 1980 when everyone seemed to be tackling the formal verification of the Schorr–Waite marking algorithm, including Gries (1979, Morris (1982) and Topor (1979). Bornat (2000) writes: “The Schorr ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
A fair amount has been written on the subject of reasoning about pointer algorithms. There was a peak about 1980 when everyone seemed to be tackling the formal verification of the Schorr–Waite marking algorithm, including Gries (1979, Morris (1982) and Topor (1979). Bornat (2000) writes: “The Schorr–Waite algorithm is the
Performing Algorithmic Refinement before Data Refinement in B
 FIRST INTERNATIONAL CONFERENCE OF B AND Z USERS, VOLUME 1878 OF LNCS
, 2000
"... Algorithmic Refinement is part of the theory of the B method both at the refinement and implementation stages. It a sign of how little loop introduction is used in practice at the refinement stage that neither the BToolkit nor AtelierB provide support for loop introduction until the implementat ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Algorithmic Refinement is part of the theory of the B method both at the refinement and implementation stages. It a sign of how little loop introduction is used in practice at the refinement stage that neither the BToolkit nor AtelierB provide support for loop introduction until the implementation stage. This paper examines the use of algorithmic refinement in general before data refinement. This involves extending the usual scope of data refinement which usually happens before algorithmic refinement. Two case studies are used to compare and contrast the application of algorithmic refinement before data refinement and vice versa. Some extensions are needed in the BToolkit to implement this style (i.e., algorithmic before data refinement) and are proposed. Some
Kleene Algebras and Pointer Structures
, 2003
"... Kleene algebras (KA) have turned out to be an appropriate tool to formally describe algebraic systems in various areas. Despite this universal applicability there often proofs are easy and half as long as in concrete KAs. In this paper we describe how to use KAs to model edgelabeled directed graphs ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Kleene algebras (KA) have turned out to be an appropriate tool to formally describe algebraic systems in various areas. Despite this universal applicability there often proofs are easy and half as long as in concrete KAs. In this paper we describe how to use KAs to model edgelabeled directed graphs. As an application we show how the relational pointer algebra developed by B. Möller can be treated with this technique.
Properties of Overwriting for Updates in Typed Kleene Algebras
, 2000
"... In this paper we present an abstract representation of pointer structures in Kleene algebras and the properties of a particular selective update function. These can be used as prerequisites for the definition of insitu pointer updates and a general framework to derive insitu pointer algorithms f ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
In this paper we present an abstract representation of pointer structures in Kleene algebras and the properties of a particular selective update function. These can be used as prerequisites for the definition of insitu pointer updates and a general framework to derive insitu pointer algorithms from their specification.
On Data Refinement in the Presence of Pointers ∗
, 2008
"... Data refinement is a common approach to reasoning about programs, based on establishing pattern. Reasoning about programs in this setting becomes complex when use of pointers is assumed and, moreover, a wellknown method for proving data refinement, namely the forward simulation method, becomes unso ..."
Abstract
 Add to MetaCart
(Show Context)
Data refinement is a common approach to reasoning about programs, based on establishing pattern. Reasoning about programs in this setting becomes complex when use of pointers is assumed and, moreover, a wellknown method for proving data refinement, namely the forward simulation method, becomes unsound in presence of pointers. The reason for unsoundness is the failure of the “lifting theorem ” for simulations: that a simulation between abstract and concrete modules can be lifted to all client programs. The result is that simulation does not imply that a concrete can replace an abstract module in all contexts. Our diagnosis of this problem is that unsoundness is due to interference from the client programs. We present a novel instrumented semantics which is capable of detecting interference between a module and its client. With use of special simulation relations, namely growing relations, and interpreting the simulation method using the instrumented semantics, we obtain a lifting theorem. We then show situations under which simulation does indeed imply refinement. 1
Case Studies For The Derivation Of Pointer Algorithms
, 2003
"... The method presented in [13] by Bernhard Möller to derive pointer algorithms has been shown wellapplicable and easytouse in several various examples. We present ..."
Abstract
 Add to MetaCart
The method presented in [13] by Bernhard Möller to derive pointer algorithms has been shown wellapplicable and easytouse in several various examples. We present