Specification of distributed programs

  • R. M. Gallimore
  • D. Coleman
Chapter 5 Submitted Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 134)


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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    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.CrossRefGoogle Scholar
  2. 2.
    BOYER, R. S. and MOORE, J. S. A Computational Logic, Academic Press, Inc. (London) Ltd., 1979.Google Scholar
  3. 3.
    BURSTALL, R. M. Proving Properties of Programs by Structural Induction Computer Journal, 12(1) 41–48, February 1969.Google Scholar
  4. 4.
    COLEMAN, D and GALLIMORE, R. Partial Correctness of Distributed Programs, these Proceedings.Google Scholar
  5. 5.
    CORRELL, C. H. Proving Programs Correct through Refinement, Acta Informatica, 9, 121–139 (1978).Google Scholar
  6. 6.
    de BAKKER, J. Mathematical Theory of Program Correctness, Prentice-Hall International, Inc., London 1981.Google Scholar
  7. 7.
    FLOYD, R. W. Assigning Meanings to Programs. AMS 19, 19–32 (1967).Google Scholar
  8. 8.
    HOARE, C. A. R. An Axiomatic Basis for Computer Programming, Communications of the ACM 12, 576–580 (1969).CrossRefGoogle Scholar
  9. 9.
    HOARE, C. A. R. Communicating Sequential Processes, Communications of the ACM 21, 8, 666–677 (1978).CrossRefGoogle Scholar
  10. 10.
    JONES, C. B. Software Development: A Rigorous Approach, Prentice Hall International, Inc., London 1980.Google Scholar
  11. 11.
    KAHN, G. and MacQUEEN, D. B. Coroutines and Networks of Parallel Processes, Proc. IFIP Congress, 1977, North-Holland, Amsterdam 1977, pp 993–998.Google Scholar
  12. 12.
    LEVIN, G. M. and GRIES, D. A Proof Technique for Communicating Sequential Processes, Acta Informatica 15, 281–302 (1981).Google Scholar
  13. 13.
    GORDON, M. J., MILNER, A. J. and WADSWORTH, C. P. Edinburgh LCF, Lecture Notes in Computer Science 78, Springer-Verlag, Berlin 1979.Google Scholar
  14. 14.
    OWICKI, S. S., and GRIES, D. Verifying Properties of Parallel Programs: An Axiomatic Approach, Communications of the ACM 19, 5 (May 1976), 279–285.Google Scholar
  15. 15.
    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.Google Scholar
  16. 16.
    GALLIMORE, R.M. and COLEMAN, D. Specification of a KWIC Index Generator, These proceedings.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1982

Authors and Affiliations

  • R. M. Gallimore
    • 1
  • D. Coleman
    • 1
  1. 1.Department of ComputationUMISTManchesterEngland

Personalised recommendations