Abstract
This paper describes a technique for program development by refinement using complementary implicit and functional specifications. The approach can be used to specify programs expressed as networks of communicating processes. A typed functional notation is introduced for that purpose and its use illustrated in the specification of a kwic-index generation program.
General properties of a program can be established by proving theorems about the functional specification. Consequently proof techniques can be used at each stage of the development process. Proofs about the final implementation only need to establish that it meets its functional specification.
This work was undertaken by the authors while D. Coleman was on study leave at the University of California, Berkeley
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
APT, K. R. FRANCEZ, N. and de ROEVER, W. A Proof System for Communicating Sequential Processes, ACM Transactions on Programming Languages and Systems, vol 2, No 3, July 1980, Page 359–385.
BOYER, R. S. and MOORE, J. S. A Computational Logic, Academic Press, Inc. (London) Ltd., 1979.
BURSTALL, R. M. Proving Properties of Programs by Structural Induction Computer Journal, 12(1) 41–48, February 1969.
COLEMAN, D and GALLIMORE, R. Partial Correctness of Distributed Programs, these Proceedings.
CORRELL, C. H. Proving Programs Correct through Refinement, Acta Informatica, 9, 121–139 (1978).
de BAKKER, J. Mathematical Theory of Program Correctness, Prentice-Hall International, Inc., London 1981.
FLOYD, R. W. Assigning Meanings to Programs. AMS 19, 19–32 (1967).
HOARE, C. A. R. An Axiomatic Basis for Computer Programming, Communications of the ACM 12, 576–580 (1969).
HOARE, C. A. R. Communicating Sequential Processes, Communications of the ACM 21, 8, 666–677 (1978).
JONES, C. B. Software Development: A Rigorous Approach, Prentice Hall International, Inc., London 1980.
KAHN, G. and MacQUEEN, D. B. Coroutines and Networks of Parallel Processes, Proc. IFIP Congress, 1977, North-Holland, Amsterdam 1977, pp 993–998.
LEVIN, G. M. and GRIES, D. A Proof Technique for Communicating Sequential Processes, Acta Informatica 15, 281–302 (1981).
GORDON, M. J., MILNER, A. J. and WADSWORTH, C. P. Edinburgh LCF, Lecture Notes in Computer Science 78, Springer-Verlag, Berlin 1979.
OWICKI, S. S., and GRIES, D. Verifying Properties of Parallel Programs: An Axiomatic Approach, Communications of the ACM 19, 5 (May 1976), 279–285.
SCOTT, D. S. and STRACHEY, C. Towards a Mathematical Semantic for Computer Languages, in Proc. Symp. Computers and Automata (J. Fox ed) pp 19–46, Polytechnic Institute of Brooklyn Press 1971.
GALLIMORE, R.M. and COLEMAN, D. Specification of a KWIC Index Generator, These proceedings.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1982 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gallimore, R.M., Coleman, D. (1982). Specification of distributed programs. In: Staunstrup, J. (eds) Program Specification. ProgSpec 1981. Lecture Notes in Computer Science, vol 134. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-11490-4_15
Download citation
DOI: https://doi.org/10.1007/3-540-11490-4_15
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-11490-1
Online ISBN: 978-3-540-39176-0
eBook Packages: Springer Book Archive