Abstract
A simple methodology for the design of concurrent programs is illustrated by a short example. This methodology formalizes the classical concept of “stepwise refinement”.
Supported in part by the ESPRIT project ATES.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
K.R. APT, “Correctness Proofs of Distributed Termination Algorithms”, ACM Toplas, vol. 8, pp. 388–405, 1986
R.J.R. BACK, “A calculus of Refinements for Program Derivations”, Acta Informatica, vol.25, pp. 593–624, 1988
R.J.R. BACK and R. KURKI-SUONIO, “Decentralization of Process Nets with Centralized Control”, Proc. 2nd ACM Symp. on Principles of Distributed Computing, pp. 131–142, 1983
R.J.R. BACK and R. KURKI-SUONIO, “Distributed Cooperation with Action Systems”, ACM Toplas, vol. 10, pp. 513–554, 1988
E. BEST, “A Note on the Proof of a Concurrent Program”, IPL, vol. 9, pp. 103–104, 1979
M. CHANDY and J. MISRA, “An Example of Stepwise Refinement of Distributed Programs: Quiescence Detection”, ACM Toplas, vol. 8, pp. 326–343, 1986
M. CHANDY and J. MISRA, “Parallel Program Design: A Foundation”, Addison-Wesley, 1988.
E.M. CLARKE, “Synthesis of Resource Invariants for Concurrent Programs”, ACM Toplas, vol. 2, pp. 338–358, 1980
P. COUSOT and R. COUSOT, “Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints”, Proc. 4th ACM Symp. on Principles of Programming Languages, pp. 238–252, 1977
P. COUSOT and R. COUSOT, “A Language Independent Proof of the Soundness and Completeness of Generalized Hoare Logic”, Information and Computation, vol. 80, pp. 165–191, 1989
P. COUSOT and N. HALBWACHS, “Automatic discovery of linear restraints among variables of a program”, Proc. 5th ACM Symp. on Principles of Programming Languages, pp. 84–96, 1978
J.W. de BAKKER and L.G.L.T. MEERTENS, “On the completeness of the inductive assertion method”, JCSS, vol. 11, pp.323–357, 1975
J.W. de BAKKER, “Mathematical Theory of Program Correctness”, Prentice Hall, New Jersey, 1980
E.W. DIJKSTRA, “A discipline of programming”, Prentice Hall, New Jersey, 1976
E.W. DIJKSTRA, “A correctness proof for networks of communicating processes: a small exercise”, EWD 607, Burroughs, The Netherlands, 1977
E.W. DIJKSTRA and al., “On-the-Fly Garbage Collection: An Exercise in Cooperation”, CACM, vol. 21, pp. 966–975, 1978
E.W. DIJKSTRA, “Finding the Correctness Proof of a Concurrent Program”, LNCS, vol. 69, pp. 24–34, 1979
E.W. DIJKSTRA, “On the Interplay between Mathematics and Programming”, LNCS, vol. 69, pp. 35–46, 1979
E.P. GRIBOMONT, “From synchronous to asynchronous communication”, Workshop BCS-FACS on Specification and Verification of Concurrent Systems (Stirling, Scotland, 1988), to appear in “FACS Workshop Series”, vol 1, 1989
D. GRIES, “The Science of Programming”, Springer-Verlag, Berlin, 1981
C.A.R. HOARE, “An axiomatic basis for computer programming”, CACM, vol. 12, pp. 576–583, 1969
C.A.R. HOARE, “Communicating Sequential Processes”, CACM, vol. 21, pp. 666–677, 1978
C.A.R. HOARE, “Communicating Sequential Processes”, Prentice-Hall, 1985
R.M. KELLER, “Formal Verification of Parallel Programs”, CACM, vol. 19, pp. 371–384, 1976
L. LAMPORT, “The ‘Hoare Logic’ of Concurrent Programs”, Acta Informatica, vol. 14, pp. 21–37, 1980
L. LAMPORT, “An Assertional Correctness Proof of a Distributed Algorithm”, Science of Computer Programming, vol. 2, pp. 175–206, 1983
L. LAMPORT and F.B. SCHNEIDER, “The ‘Hoare Logic’ of CSP, and All That”, ACM Toplas, vol. 6, pp. 281–296, 1984
L. LAMPORT, “win and sin: Predicate Transformers for Concurrency”, DEC SRC Report 17, 1987
L. LAMPORT, “Control Predicates are Better than Dummy Variables for Reasoning about Program Control”, ACM Toplas, vol. 10, pp. 267–281, 1988
N.A. LYNCH and M.R. TUTTLE, “Hierarchical Correctness Proofs for Distributed Algorithms”, Proc. 6th ACM Symp. on Principles of Distributed Computing, pp. 137–151, 1987
C. MORGAN, “The Specification Statement”, ACM Toplas, vol. 10, pp. 403–419, 1988
C. MORGAN, “Auxiliary variables in data refinement”, IPL, vol. 29, pp. 293–296, 1988
J. MORRIS, “A theoretical basis for stepwise refinement and the programming calculus”, Science of Computer Programming, vol. 9, pp. 287–306, 1987
J.M. MORRIS, “Varieties of weakest liberal preconditions”, IPL, vol. 25, pp. 207–210, 1987
S. OWICKI and D. GRIES, “An Axiomatic Proof Technique for Parallel programs”, Acta Informatica, vol. 6, pp 319–340, 1976
M. RAYNAL, “Algorithms for Mutual Exclusion”, North Oxford Academic, 1986
J. SIFAKIS, “A unified approach for studying the properties of transition systems”, TCS, vol. 18, pp. 227–259, 1982
A. van LAMSWEERDE and M. SINTZOFF, “Formal derivation of strongly correct concurrent programs”, Acta Informatica, vol. 12, pp. 1–31, 1979
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1989 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gribomont, E.P. (1989). Stepwise refinement and concurrency: A small exercise. In: van de Snepscheut, J.L.A. (eds) Mathematics of Program Construction. MPC 1989. Lecture Notes in Computer Science, vol 375. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-51305-1_12
Download citation
DOI: https://doi.org/10.1007/3-540-51305-1_12
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-51305-6
Online ISBN: 978-3-540-46191-3
eBook Packages: Springer Book Archive