ACM Home Page
Please provide us with feedback. Feedback
The specification statement
Full text PdfPdf (1.02 MB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 10 ,  Issue 3  (July 1988) table of contents
Pages: 403 - 419  
Year of Publication: 1988
ISSN:0164-0925
Author
Carroll Morgan  Oxford Univ., Oxford, UK
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 12,   Downloads (12 Months): 80,   Citation Count: 14
Additional Information:

abstract   references   cited by   index terms   review   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/44501.44503
What is a DOI?

ABSTRACT

Dijkstra's programming language is extended by specification statements, which specify parts of a program “yet to be developed.” A weakest precondition semantics is given for these statements so that the extended language has a meaning as precise as the original. The goal is to improve the development of programs, making it closer to manipulations within a single calculus. The extension does this by providing one semantic framework for specifications and programs alike: Developments begin with a program (a single specification statement) and end with a program (in the executable language). And the notion of refinement or satisfaction, which normally relates a specification to its possible implementations, is automatically generalized to act between specifications and between programs as well. A surprising consequence of the extension is the appearance of miracles: program fragments that do not satisfy Dijkstra's Law of the Excluded Miracle. Uses for them are suggested.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
ABR1AL, J.-R. Generalised substitutions. 26 Rue des Plantes, Paris 75014, France, 1987.
 
2
BACK, R.-J. On the correctness of refinement steps in program development. Tech. Rep. A- 1978-4, Dept. of Computer Science, Univ. of Helsinki, Helsinski, 1978.
 
3
BARRINGER, H., CHENG, J. H., AND JONES, C.B. A logic covering undefinedness in program proofs. Acta Inf. 21 (1984), 251-269.
 
4
 
5
6
 
7
 
8
 
9
HOARE, C. A. R. Procedures and parameters: An axiomatic approach. In Symposium on Semantics of Algorithmic Languages. Notes in Mathematics 188, E. Engeler, Ed., Springer-Verlag, New York, 1971.
 
10
HOARE, C. A. R., ANO HE, J. The weakest prespecification. Fundamenta lnformaticae IX (1986), 51-84.
 
11
 
12
JOSEPHS, M. B. Formal methods for stepwise refinement in the Z specification language. Programming Research Group, Oxford Univ., 1986.
13
 
14
 
15
 
16
 
17
MORGAN, C. C., ANO SUrRIN, B.A. Specification of the UNIX filing system. IEEE Trans. Softw. Eng. SE-IO, 2 (Mar. 1984).
 
18
 
19
NELSON, G. A generalization of Dijkstra's calculus. Tech. Rep. 16, Digital Systems Research Center, Palo Alto, Calif., Apr. 1987.
 
20
 
21

CITED BY  14


REVIEW

"John D. McLean : Reviewer"

In the last few years program verification has shifted its attention from the task of proving an arbitrary program correct to the task of formally refining a specification into a correct program. This paper develops a uniform framework for forma  more...