The specification statement
- 1 July 1988
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 10 (3), 403-419
- https://doi.org/10.1145/44501.44503
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.Keywords
This publication has 7 references indexed in Scilit:
- Procedures, parameters, and abstraction: Separate concernsScience of Computer Programming, 1988
- Data refinement by miraclesInformation Processing Letters, 1988
- A theoretical basis for stepwise refinement and the programming calculusScience of Computer Programming, 1987
- Specification statements and refinementIBM Journal of Research and Development, 1987
- The Weakest Prespecification, Part IFundamenta Informaticae, 1986
- A logic covering undefinedness in program proofsActa Informatica, 1984
- Abstracto 84Published by Association for Computing Machinery (ACM) ,1979