LISP and Symbolic Computation, 3(1)21-37

Relative Specification and Transformational Re-Use of Functional Programs

Colin Runciman, Department of Computer Science, University of York, York, YO1 5DD, UK
Nigel Jagger, Department of Computer Science, University of York, York, YO1 5DD, UK

Abstract: A relative specification is a collection of laws relating the behaviour of a required new program to that of one or more existing programs. A two stage method for transforming such relative specifications into effective functional programs is described and illustrated. The inversion stage re-arranges the specifying laws to obtain a collection of partial definitions for each unknown function, typically involving non-deterministic operators. The subsequent fusion stage combines each set of partial definitions into a single complete definition, thereby eliminating nondeterministic operators.

Keywords: functional programming, equational specifications, program derivation

[local copy]
[picture of journal cover]

March 2003 - hosc@brics.dk