Laws of Programming: The Algebraic Unification of Theories of Concurrency

  • Tony Hoare
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8704)


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.


Operational Semantic Sequential Composition Natural Deduction Concurrent Program Communicate Sequential Process 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bergstra, J., Klop, J.: Fixed point semantics in process algebra. Technical Report IW 208, Mathematical Centre, Amsterdam (1982)Google Scholar
  2. 2.
    Bergstra, J.A., Klop, J.W.: Process algebra for synchronous communication. Information and Control 60(1-3), 109–137 (1984)CrossRefzbMATHMathSciNetGoogle Scholar
  3. 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)CrossRefzbMATHMathSciNetGoogle Scholar
  4. 4.
    Floyd, R.: Assigning meanings to programs. In: Proceedings of Symposium on Applied Mathematics, vol. 19, pp. 19–32 (1967)Google Scholar
  5. 5.
    Hoare, C.A.R., He, J.: Unifying Theories of Programming. Prentice Hall International Series in Computer Science (1998)Google Scholar
  6. 6.
    Hoare, C.A.R.: An axiomatic basis for computer programming. Communications of the ACM 12(10), 576–580 (1969)CrossRefzbMATHGoogle Scholar
  7. 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. 8.
    Hoare, C.A.R.: Monitors: An operating system structuring concept. Communications of the ACM 17(10), 549–557 (1974)CrossRefzbMATHGoogle Scholar
  9. 9.
    Hoare, C.A.R.: Communicating sequential processes. Communications of the ACM 21(8), 666–677 (1978)CrossRefzbMATHMathSciNetGoogle Scholar
  10. 10.
    Hoare, C.A.R.: The emperor’s old clothes. Communications of the ACM 24(2), 75–83 (1981)CrossRefGoogle Scholar
  11. 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)CrossRefzbMATHGoogle Scholar
  12. 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)CrossRefGoogle Scholar
  13. 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. 14.
    INMOS. occam Programming Manual. Prentice Hall (1984)Google Scholar
  15. 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. 16.
    Mac Lane, S.: Categories for the working mathematician, 2nd edn. Springer, Heidelberg (1998)zbMATHGoogle Scholar
  17. 17.
    Milner, R.: A Calculus of Communication Systems. LNCS, vol. 92. Springer, Heidelberg (1980)Google Scholar
  18. 18.
    Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: Proc. of LICS, pp. 55–74 (2002)Google Scholar
  19. 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. 20.
    Scott, D., Strachey, C.: Toward a mathematical semantics for computer languages. Oxford Programming Research Group Technical Monograph, PRG-6 (1971)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2014

Authors and Affiliations

  • Tony Hoare
    • 1
  1. 1.Microsoft Research (Cambridge) Ltd.USA

Personalised recommendations