The University of Southampton
University of Southampton Institutional Repository

Logical Refinement of Imperative Programs: generating code from verified conditions

Logical Refinement of Imperative Programs: generating code from verified conditions
Logical Refinement of Imperative Programs: generating code from verified conditions
Most program development methods rely on a combination of programming and logical notations. Correctness is verified using refinement laws which often have logical side conditions. Checking these conditions involves a separate proof, breaking up the linear flow of the program derivation. This paper explores a variant of the refinement calculus in which only logical notation is used and the program under development is inferred from formulas which are, in effect, the verification conditions that would arise in a traditional derivation. It is preferable that these are verified first, in which case they should be called verified conditions. A polynomial algorithm exists for extracting the refinement argument, and hence the implementation, from these conditions. A prototype code generation system has been implemented in Prolog. The benefits and weaknesses of the approach are compared to those of more conventional refinement calculi.
2-16
Gravell, Andrew M
f3a261c5-f057-4b5f-b6ac-c1ca37d72749
Gupta, Gopal
fa2dd158-f0af-4663-b304-a32f7f31dab0
Ramakrishnan, I.V.
3bac229c-0468-47d4-90d7-8e12f0e0cfae
Gravell, Andrew M
f3a261c5-f057-4b5f-b6ac-c1ca37d72749
Gupta, Gopal
fa2dd158-f0af-4663-b304-a32f7f31dab0
Ramakrishnan, I.V.
3bac229c-0468-47d4-90d7-8e12f0e0cfae

Gravell, Andrew M (2000) Logical Refinement of Imperative Programs: generating code from verified conditions. Gupta, Gopal and Ramakrishnan, I.V. (eds.) Workshop on (Constraint) Logic Programming and Software Engineering LPSE2000. pp. 2-16 .

Record type: Conference or Workshop Item (Other)

Abstract

Most program development methods rely on a combination of programming and logical notations. Correctness is verified using refinement laws which often have logical side conditions. Checking these conditions involves a separate proof, breaking up the linear flow of the program derivation. This paper explores a variant of the refinement calculus in which only logical notation is used and the program under development is inferred from formulas which are, in effect, the verification conditions that would arise in a traditional derivation. It is preferable that these are verified first, in which case they should be called verified conditions. A polynomial algorithm exists for extracting the refinement argument, and hence the implementation, from these conditions. A prototype code generation system has been implemented in Prolog. The benefits and weaknesses of the approach are compared to those of more conventional refinement calculi.

This record has no associated files available for download.

More information

Published date: July 2000
Additional Information: Address: London
Venue - Dates: Workshop on (Constraint) Logic Programming and Software Engineering LPSE2000, 2000-06-30
Organisations: Electronic & Software Systems

Identifiers

Local EPrints ID: 253716
URI: http://eprints.soton.ac.uk/id/eprint/253716
PURE UUID: b10d0e80-32d6-4254-9970-70a74d531c07

Catalogue record

Date deposited: 29 May 2001
Last modified: 10 Dec 2021 20:34

Export record

Contributors

Author: Andrew M Gravell
Editor: Gopal Gupta
Editor: I.V. Ramakrishnan

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.

×