Results 1 -
3 of
3
A Recursion Removal Theorem - Proof and Applications
, 1999
"... In this paper we briey introduce a Wide Spectrum Language and its transformation theory and describe a recent success of the theory: a general recursion removal theorem. This theorem includes as special cases the two techniques discussed by Knuth [12] and Bird [7]. We describe some applications of t ..."
Abstract
-
Cited by 11 (8 self)
- Add to MetaCart
In this paper we briey introduce a Wide Spectrum Language and its transformation theory and describe a recent success of the theory: a general recursion removal theorem. This theorem includes as special cases the two techniques discussed by Knuth [12] and Bird [7]. We describe some applications of the theorem to cascade recursion, binary cascade recursion, Gray codes, the Towers of Hanoi problem, and an inverse engineering problem. 1 Introduction In this paper we briey introduce some of the ideas behind the transformation theory we have developed over the last eight years at Oxford and Durham Universities and describe a recent result: a general recursion removal theorem. We use a Wide Spectrum Language (called WSL), developed in [19,20,21] which includes lowlevel programming constructs and high-level abstract specications within a single language. Working within a single language means that the proof that a program correctly implements a specication, or that a specication correct...
A Recursion Removal Theorem
, 1993
"... In this paper we briefly introduce a Wide Spectrum Language and its transformation theory and describe a recent success of the theory: a general recursion removal theorem. Recursion removal often forms an important step in the systematic development of an algorithm from a formal specification. We us ..."
Abstract
-
Cited by 7 (3 self)
- Add to MetaCart
In this paper we briefly introduce a Wide Spectrum Language and its transformation theory and describe a recent success of the theory: a general recursion removal theorem. Recursion removal often forms an important step in the systematic development of an algorithm from a formal specification. We use semantic-preserving transformations to carry out such developments and the theorem proves the correctness of many different classes of recursion removal. This theorem includes as special cases the two techniques discussed by Knuth [13] and Bird [7]. We describe some applications of the theorem to cascade recursion, binary cascade recursion, Gray codes, and an inverse engineering problem.
An Experiment in Reverse Engineering Using Algebraic Specifications
, 1997
"... We propose a methodological framework for reverse engineering using formal methods, in which at least two algebraic specifications are constructed: the low-level "implementation specification" of the source code must be abstracted to obtain the "requirements specification". We explain that, in o ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
We propose a methodological framework for reverse engineering using formal methods, in which at least two algebraic specifications are constructed: the low-level "implementation specification" of the source code must be abstracted to obtain the "requirements specification". We explain that, in our view, the most interesting abstraction step is to link a specialized function to a more general function by means of the appropriate pre-condition. We illustrate our approach by reverse engineering a Fortran procedure from a real program used in the control of the French very high voltage electrical power system. The method used consists of successive transformations of the flowchart of this procedure. It succeeds in revealing the abstract operation and abstract data type to be described in the requirements specification, as well as the condition which must be satisfied in order for the procedure to be a correct implementation of this specification. This work was financed by Ele...

