Procedures and Recursion in the Refinement Calculus

Cavalcanti, A.L.C. and Sampaio, A. and Woodcock, JCP (1998) Procedures and Recursion in the Refinement Calculus. Journal of the Brazilian Computer Society, 5 (1). pp. 1-15. ISSN 0104-6500. (The full text of this publication is not available from this repository)

The full text of this publication is not available from this repository. (Contact us about this Publication)
Official URL
http://dx.doi.org/10.1590/S0104-65001998000200002

Abstract

Morgan's approach to program development is a refinement calculus: using this method, programs are developed from specifications through the successive application of refinement laws. This programming technique has been widely accepted, but it has been shown that Morgan's approach to procedures and parameters has an inconsistency. Back presents an alternative formalisation of procedures and parameters which is consistent, but does not propose any refinement law. In this paper, we present refinement laws that allow the development of (possibly parametrised and recursive) procedures in the style of Morgan, and derive these laws based on Back's formalism. Some of the refinement laws we present have a counterpart in Morgan's calculus, but some are new laws that support his approach to the development of recursive procedures. Keywords: formal methods, program development, refinement laws.

Item Type: Article
Uncontrolled keywords: formal methods, program development, refinement laws.
Subjects: Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming,
Divisions: Faculties > Science Technology and Medical Studies > School of Computing > Theoretical Computing Group
Faculties > Science Technology and Medical Studies > School of Computing > Systems Architecture Group
Depositing User: Mark Wheadon
Date Deposited: 25 Aug 2009 17:36
Last Modified: 20 Apr 2012 14:59
Resource URI: http://kar.kent.ac.uk/id/eprint/21563 (The current URI for this page, for reference purposes)
  • Depositors only (login required):