The University of Southampton
University of Southampton Institutional Repository

Program refinement using a Universal Law : Language specification and prototype tool

Program refinement using a Universal Law : Language specification and prototype tool
Program refinement using a Universal Law : Language specification and prototype tool

The refinement calculus introduced by Back [Bac78], Morgan [Mor88a], Morris [Mor87] and others, combines specifications and programs into a single language and allows the development of a program from its specification to proceed in a number of small steps. The subject of this thesis is the definition of a specification and programming language based on the refinement calculus. A prototype tool has been developed from a formal language definition and simple examples are used to evaluate the language and tool.

One difference from existing refinement systems is the use of a universal refinement law and a simple compiler-style tool, rather than many laws and interactive tools. Most of the benefits of the refinement calculus are maintained while the change of programming method is smaller than that required to use an interactive refinement system. The size of refinement steps can be varied and complex derivations of obvious developments avoided. Context is propagated automatically, allowing Back's generalisation of the familiar assignment statement to be used for specification.

The use of subtypes and dependent types is another feature distinguishing this work. Subtypes and dependent types are integrated smoothly into the programming language and are shown to provide an accurate model of the runtime constraints of a programming language.

Some have argued that formal methods are necessary to achieve safe programmable systems, but to date this has not been borne out by experience. However, achieving dependable software is expensive, suggesting that the use of formal methods should be directed towards reducing costs. This vision can be realised only by exploiting theories such as the refinement calculus pragmatically, aiming to enhance existing practices, with flexibility in matters such as the degree of rigour and the order of development steps. The work described in this thesis is intended to be a step in this direction.

University of Southampton
Marsh, David William Roff
Marsh, David William Roff

Marsh, David William Roff (2000) Program refinement using a Universal Law : Language specification and prototype tool. University of Southampton, Doctoral Thesis.

Record type: Thesis (Doctoral)

Abstract

The refinement calculus introduced by Back [Bac78], Morgan [Mor88a], Morris [Mor87] and others, combines specifications and programs into a single language and allows the development of a program from its specification to proceed in a number of small steps. The subject of this thesis is the definition of a specification and programming language based on the refinement calculus. A prototype tool has been developed from a formal language definition and simple examples are used to evaluate the language and tool.

One difference from existing refinement systems is the use of a universal refinement law and a simple compiler-style tool, rather than many laws and interactive tools. Most of the benefits of the refinement calculus are maintained while the change of programming method is smaller than that required to use an interactive refinement system. The size of refinement steps can be varied and complex derivations of obvious developments avoided. Context is propagated automatically, allowing Back's generalisation of the familiar assignment statement to be used for specification.

The use of subtypes and dependent types is another feature distinguishing this work. Subtypes and dependent types are integrated smoothly into the programming language and are shown to provide an accurate model of the runtime constraints of a programming language.

Some have argued that formal methods are necessary to achieve safe programmable systems, but to date this has not been borne out by experience. However, achieving dependable software is expensive, suggesting that the use of formal methods should be directed towards reducing costs. This vision can be realised only by exploiting theories such as the refinement calculus pragmatically, aiming to enhance existing practices, with flexibility in matters such as the degree of rigour and the order of development steps. The work described in this thesis is intended to be a step in this direction.

Text
733082.pdf - Version of Record
Available under License University of Southampton Thesis Licence.
Download (8MB)

More information

Published date: 2000

Identifiers

Local EPrints ID: 466974
URI: http://eprints.soton.ac.uk/id/eprint/466974
PURE UUID: 5101a775-6fd4-4536-97a5-da397c573edc

Catalogue record

Date deposited: 05 Jul 2022 08:05
Last modified: 05 Jul 2022 08:05

Export record

Contributors

Author: David William Roff Marsh

Download statistics

Downloads from ePrints over the past year. Other digital versions may also be available to download e.g. from the publisher's website.

View more statistics

Atom RSS 1.0 RSS 2.0

Contact ePrints Soton: eprints@soton.ac.uk

ePrints Soton supports OAI 2.0 with a base URL of http://eprints.soton.ac.uk/cgi/oai2

This repository has been built using EPrints software, developed at the University of Southampton, but available to everyone to use.

We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we will assume that you are happy to receive cookies on the University of Southampton website.

×