Skip to main content

Laws of Programming: The Algebraic Unification of Theories of Concurrency

  • Conference paper
CONCUR 2014 – Concurrency Theory (CONCUR 2014)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 8704))

Included in the following conference series:

Abstract

I began my academic research career in 1968, when I moved from industrial employment as a programmer to the Chair of Computing at the Queen’s University in Belfast. My chosen research goal was to discover an axiomatic basis for computer programming. Originally I wanted to express the axioms as algebraic equations, like those which provide the basis of arithmetic or group theory. But I did not know how. After many intellectual vicissitudes, I have now discovered the simple secret. I would be proud of this discovery, if I were not equally ashamed at taking so long to discover it.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bergstra, J., Klop, J.: Fixed point semantics in process algebra. Technical Report IW 208, Mathematical Centre, Amsterdam (1982)

    Google Scholar 

  2. Bergstra, J.A., Klop, J.W.: Process algebra for synchronous communication. Information and Control 60(1-3), 109–137 (1984)

    Article  MATH  MathSciNet  Google Scholar 

  3. Brookes, S.D., Hoare, C.A.R., Roscoe, A.W.: A theory of communicating sequential processes. Journal of the ACM 31(3), 560–599 (1984)

    Article  MATH  MathSciNet  Google Scholar 

  4. Floyd, R.: Assigning meanings to programs. In: Proceedings of Symposium on Applied Mathematics, vol. 19, pp. 19–32 (1967)

    Google Scholar 

  5. Hoare, C.A.R., He, J.: Unifying Theories of Programming. Prentice Hall International Series in Computer Science (1998)

    Google Scholar 

  6. Hoare, C.A.R.: An axiomatic basis for computer programming. Communications of the ACM 12(10), 576–580 (1969)

    Article  MATH  Google Scholar 

  7. Hoare, C.A.R.: Towards a theory of parrallel programming. In: Hoare, C.A.R., Perrott, R.H. (eds.) Operating Systems Techniques, Proceedings of Seminar at Queen’s University, Belfast, Northern Ireland, pp. 61–71. Academic Press (1972)

    Google Scholar 

  8. Hoare, C.A.R.: Monitors: An operating system structuring concept. Communications of the ACM 17(10), 549–557 (1974)

    Article  MATH  Google Scholar 

  9. Hoare, C.A.R.: Communicating sequential processes. Communications of the ACM 21(8), 666–677 (1978)

    Article  MATH  MathSciNet  Google Scholar 

  10. Hoare, C.A.R.: The emperor’s old clothes. Communications of the ACM 24(2), 75–83 (1981)

    Article  Google Scholar 

  11. Hoare, C.A.R., Hayes, I.J., He, J., Morgan, C., Roscoe, A.W., Sanders, J.W., Sørensen, I.H., Spivey, J.M., Sufrin, B.: Laws of programming. Communications of the ACM 30(8), 672–686 (1987)

    Article  MATH  Google Scholar 

  12. Hoare, C.A.R., Möller, B., Struth, G., Wehrman, I.: Concurrent kleene algebra. In: Bravetti, M., Zavattaro, G. (eds.) CONCUR 2009. LNCS, vol. 5710, pp. 399–414. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  13. Hoare, C.A.R., Wehrman, I., O’Hearn, P.W.: Graphical models of separation logic. In: Engineering Methods and Tools for Software Safety and Security. IOS Press (2009)

    Google Scholar 

  14. INMOS. occam Programming Manual. Prentice Hall (1984)

    Google Scholar 

  15. Ishtiaq, S.S., O’Hearn, P.W.: BI as an assertion language for mutable data structures. In: Proc. of POPL, pp. 14–26 (2001)

    Google Scholar 

  16. Mac Lane, S.: Categories for the working mathematician, 2nd edn. Springer, Heidelberg (1998)

    MATH  Google Scholar 

  17. Milner, R.: A Calculus of Communication Systems. LNCS, vol. 92. Springer, Heidelberg (1980)

    Google Scholar 

  18. Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: Proc. of LICS, pp. 55–74 (2002)

    Google Scholar 

  19. Roscoe, A.W.: Model-checking CSP. In: A Classical Mind: Essays in Honour of C.A.R. Hoare. Prentice Hall International (UK) Ltd. (1994)

    Google Scholar 

  20. Scott, D., Strachey, C.: Toward a mathematical semantics for computer languages. Oxford Programming Research Group Technical Monograph, PRG-6 (1971)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Hoare, T. (2014). Laws of Programming: The Algebraic Unification of Theories of Concurrency. In: Baldan, P., Gorla, D. (eds) CONCUR 2014 – Concurrency Theory. CONCUR 2014. Lecture Notes in Computer Science, vol 8704. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-44584-6_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-662-44584-6_1

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-662-44583-9

  • Online ISBN: 978-3-662-44584-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics