Results 1  10
of
12
Derivation of Data Intensive Algorithms by Formal Transformation: The SchorrWaite Graph Marking Algorithm
, 1996
"... In this paper we consider a particular class of algorithms which present certain difficulties to formal verification. These are algorithms which use a single data structure for two or more purposes, which combine program control information with other data structures or which are developed as a comb ..."
Abstract

Cited by 36 (25 self)
 Add to MetaCart
In this paper we consider a particular class of algorithms which present certain difficulties to formal verification. These are algorithms which use a single data structure for two or more purposes, which combine program control information with other data structures or which are developed as a combination of a basic idea with an implementation technique. Our approach is based on applying proven semanticspreserving transformation rules in a wide spectrum language. Starting with a set theoretical specification of "reachability" we are able to derive iterative and recursive graph marking algorithms using the "pointer switching" idea of Schorr and Waite. There have been several proofs of correctness of the SchorrWaite algorithm, and a small number of transformational developments of the algorithm. The great advantage of our approach is that we can derive the algorithm from its specification using only generalpurpose transformational rules: without the need for complicated induction arg...
Foundations for a Practical Theory of Program Refinement and Transformation
, 1994
"... A wide spectrum language is presented, which is designed to facilitate the proof of the correctness of refinements and transformations. Two different proof methods are introduced and used to prove some fundamental transformations, including a general induction rule (Lemma 3.9) which enables transfor ..."
Abstract

Cited by 21 (14 self)
 Add to MetaCart
A wide spectrum language is presented, which is designed to facilitate the proof of the correctness of refinements and transformations. Two different proof methods are introduced and used to prove some fundamental transformations, including a general induction rule (Lemma 3.9) which enables transformations of recursive and iterative programs to be proved by induction on their finite truncations. A theorem for proving the correctness of recursive implementations is presented (Theorem 3.21), which provides a method for introducing a loop, without requiring the user to provide a loop invariant. A powerful, general purpose, transformation for removing or introducing recursion is described and used in a case study (Section 5) in which we take a small, but highly complex, program and apply formal transformations in order to uncover an abstract specification of the behaviour of the program. The transformation theory supports a transformation system, called FermaT, in which the applicability conditions of each transformation (and hence the correctness of the result) are mechanically verified. These results together considerably simplify the construction of viable program transformation tools; practical consequences are briefly discussed.
Inverse Engineering a simple Real Time program
, 1999
"... Reverse engineering of interruptdriven realtime programs with timing constraints is a particularly challenging research area, because the functional behaviour of a program, and the nonfunctional timing requirements, are implicit and can be very difficult to discover. However, in this paper we pre ..."
Abstract

Cited by 10 (4 self)
 Add to MetaCart
Reverse engineering of interruptdriven realtime programs with timing constraints is a particularly challenging research area, because the functional behaviour of a program, and the nonfunctional timing requirements, are implicit and can be very difficult to discover. However, in this paper we present a significant advance in this area, which is achieved by modelling realtime programs with interrupts in the wide spectrum language WSL. A small example program is modelled in this way, and formal program transformations are used to derive various timing constraints and to inverse engineer a formal specification of the program. (We use the term inverse engineering to mean reverse engineering achieved by formal program transformations).
Recursion Removal/Introduction by Formal Transformation: An Aid to Program Development and Program Comprehension
 Comput. J
, 1999
"... ..."
Specifications from Source Code  Alchemists' Dream or Practical Reality?
, 1994
"... We describe a method for extracting highlevel specifications from unstructured source code. The method is based on a theory of program re nement and transformation, which is used as the bases for the development of a catalogue of powerful semanticspreserving transformations. Each transformation is ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
We describe a method for extracting highlevel specifications from unstructured source code. The method is based on a theory of program re nement and transformation, which is used as the bases for the development of a catalogue of powerful semanticspreserving transformations. Each transformation is an operation on a program which has a mechanicallycheckable correctness condition, and which has been rigorously proved to produce a semantically equivalent result. The transformations are carried out in a wide spectrum programming language (called WSL). This language includes highlevel specifications as well as lowlevel programming constructs. As a result, the formal reverse engineering process (from source code to equivalent specifications) and the redevelopment process (refinement of specifications into source code) can both be carried out within a single language and transformation theory. We also discuss a tool (FermaT) which has been developed to support this approach to reengineerin...
How to compare the power of computational models
 In Computability in Europe 2005: New Computational Paradigms
, 2005
"... Abstract. We argue that there is currently no satisfactory general framework for comparing the extensional computational power of arbitrary computational models operating over arbitrary domains. We propose a conceptual framework for comparison, by linking computational models to hypothetical physica ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
Abstract. We argue that there is currently no satisfactory general framework for comparing the extensional computational power of arbitrary computational models operating over arbitrary domains. We propose a conceptual framework for comparison, by linking computational models to hypothetical physical devices. Accordingly, we deduce a mathematical notion of relative computational power, allowing the comparison of arbitrary models over arbitrary domains. In addition, we claim that the method commonly used in the literature for “strictly more powerful” is problematic, as it allows for a model to be more powerful than itself. On the positive side, we prove that Turing machines and the recursive functions are “complete ” models, in the sense that they are not susceptible to this anomaly, justifying the standard means of showing that a model is “hypercomputational.” 1
Projections Of Semicomputable Relations On Abstract Data Types
, 1991
"... DATA TYPES J.V. TUCKER Department of Mathematics and Computer Science, University College of Swansea, Swansea SA2 8PP, Wales and J.I. ZUCKER Department of Computer Science and Systems, McMaster University, Hamilton, Ontario L8S 4K1, Canada ABSTRACT We consider projections of semicomputable rela ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
DATA TYPES J.V. TUCKER Department of Mathematics and Computer Science, University College of Swansea, Swansea SA2 8PP, Wales and J.I. ZUCKER Department of Computer Science and Systems, McMaster University, Hamilton, Ontario L8S 4K1, Canada ABSTRACT We consider projections of semicomputable relations on abstract structures We show that they arise in several contexts, including nondeterministic extensions of ` while' programs with arrays by means of arbitrary initializations and random assignments. They form a basis for an investigation of the concept of algorithmic specifications of relations with nondeterministic search. An important technique in this investigation is the study of computation trees for imperative programs, in order to prove characterization theorems for semicomputable sets, of a form first developed by E. Engeler. Keywords: abstract data types, computability, manysorted algebras 0. Introduction The mathematical theory of computable functions and relations over ...
Notes on Discrete Mathematics for Computer Scientists
, 2003
"... 1.2 Formal Languages.......................... 2 ..."
Finite Models and Finitely Many Variables
 Banach Center Publications
, 1999
"... We consider L  first order logic restricted to k variables, and interpreted in finite structures. The study of classes of finite structures axiomatisable with finitely many variables has assumed importance through connections with computational complexity. In particular, we investigate the relation ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We consider L  first order logic restricted to k variables, and interpreted in finite structures. The study of classes of finite structures axiomatisable with finitely many variables has assumed importance through connections with computational complexity. In particular, we investigate the relationship between the size of a finite structure and the number of distinct types it realizes, with respect to L . Some open questions, formulated as finitary LöwenheimSkolem properties, are presented regarding this relationship. This is also investigated through finitary versions of an EhrenfeuchtMostowski property.
A Hypercomputational Alien
, 2005
"... Is there a physical constant with the value of the halting function? An answer to this question, as holds true for other discussions of hypercomputation, assumes a fixed interpretation of nature by mathematical entities. We discuss the subjectiveness of viewing the mathematical properties of nature, ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Is there a physical constant with the value of the halting function? An answer to this question, as holds true for other discussions of hypercomputation, assumes a fixed interpretation of nature by mathematical entities. We discuss the subjectiveness of viewing the mathematical properties of nature, and the possibility of comparing computational models having different views of the world. For that purpose, we propose a conceptual framework for power comparison, by linking computational models to hypothetical physical devices. Accordingly, we deduce a mathematical notion of relative computational power, allowing for the comparison of arbitrary models over arbitrary domains. In addition, we claim that the method commonly used in the literature for “strictly more powerful ” is problematic, as it allows for a model to be more powerful than itself. On the positive side, we prove that Turing machines and the recursive functions are “complete ” models, in the sense that they are not susceptible to this anomaly, justifying the standard means of showing that a model is more powerful than Turing machines.