Skip to main content

Parallel programming: An axiomatic approach

  • Chapter 1.: Concurrency
  • Conference paper
  • First Online:
Language Hierarchies and Interfaces

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 46))

Abstract

This paper develops some ideas expounded in [1]. It distinguishes a number of ways of using parallelism, including disjoint processes, competition, cooperation, communication and "colluding". In each case an axiomatic proof rule is given. Some light is thrown on traps or ON conditions. Warning: the program structuring methods described here are not suitable for the construction of operating systems.

Work on this paper has been supported in part by ARPA under contract SD-183 and NSF under contract GJ-36473X.

The views expressed are those of the author.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. C. A. R. Hoare. "Towards a Theory of Parallel Programming," in Operating Systems Techniques, ed. C. A. R. Hoare and R. H. Perrot. Academic Press, 1972.

    Google Scholar 

  2. C. A. R. Hoare. "Proof of Correctness of Data Representations," Acta Informatica 1, 271–281 (1972).

    Article  Google Scholar 

  3. C. A. R. Hoare. "Monitors: an Operating System Structuring Concept." Seminar delivered to I.R.I.A., May 11, 1973.

    Google Scholar 

  4. D. Scott. "Outline of a Mathematical Theory of Computation," PRG-7. Programming Research Group, Oxford University.

    Google Scholar 

  5. E. W. Dijkstra. "Cooperating Sequential Processes," in Programming Languages, ed. F. Genuys. Academic Press, 1968.

    Google Scholar 

  6. C. A. R. Hoare. "Notes on Data Structuring," in Structured Programming, by E. W. Dijkstra, O. J. Dahl, C. A. R. Hoare. Academic Press, 1972.

    Google Scholar 

  7. C. A. R. Hoare. "Procedures and Parameters: an Axiomatic Approach," in Symposium on Semantics of Algorithmic Languages, ed. E. Engeler. Springer-Verlag, 1972.

    Google Scholar 

  8. P. E. Lauer. "Consistent Formal Theories of the Semantics of Programming Languages," Ph.D. thesis, Queen's University, Belfast. TR.25.121 IBM Laboratory, Vienna, Nov. 1971.

    Google Scholar 

  9. P. Brinch Hansen. Operating System Principles. Prentice-Hall, 1973.

    Google Scholar 

  10. D. Michie. "Memo functions: a language feature with ‘rote learning’ properties," MIP-R-29, Edinburgh University, (November 1967).

    Google Scholar 

  11. M. E. Conway. "Design of a Separable Transition Diagram Compiler," Comm. ACM 6, 396–408, (1963).

    Article  Google Scholar 

  12. M. Clint. "Program Proving: Coroutines," Acta Informatica 2, 50–63, (1973).

    Article  Google Scholar 

  13. R. W. Floyd. "Nondeterministic Algorithms," J. ACM 14, 4, pp. 636–644, (1967).

    Google Scholar 

  14. N. Wirth. "The Programming Language PASCAL," Acta Informatica 1, 1 (1971), pp. 35–63.

    Article  Google Scholar 

  15. E. A. Ashcroft, Z. Manna. "Formalization of Properties of Parallel Programs," A.I.M. 110, Stanford University, February 1970.

    Google Scholar 

  16. E. W. Dijkstra. Private communication.

    Google Scholar 

  17. Formal Definition of PL/I. IBM Laboratory, Vienna, TR.25.071 (1967).

    Google Scholar 

  18. A. d'Agapeyeff. Private communication.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Friedrich L. Bauer E. W. Dijkstra A. Ershov M. Griffiths C. A. R. Hoare W. A. Wulf Klaus Samelson

Rights and permissions

Reprints and permissions

Copyright information

© 1976 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Hoare, C.A.R. (1976). Parallel programming: An axiomatic approach. In: Bauer, F.L., et al. Language Hierarchies and Interfaces. Lecture Notes in Computer Science, vol 46. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-07994-7_47

Download citation

  • DOI: https://doi.org/10.1007/3-540-07994-7_47

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-07994-1

  • Online ISBN: 978-3-540-37972-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics