|
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
|
|
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...
|