Resources, Concurrency and Local Reasoning

  • Peter W. O’Hearn
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3170)


In this paper we show how a resource-oriented logic, separation logic, can be used to reason about the usage of resources in concurrent programs.


Memory Manager Concurrent Program Resource Invariant Proof Rule Separation Logic 
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.
    Brinch Hansen, P.: The nucleus of a multiprogramming system. Comm. ACM 13(4), 238–250 (1970)CrossRefzbMATHGoogle Scholar
  2. 2.
    Brinch Hansen, P.: Structured multiprogramming. Comm. ACM 15(7), 574–578 (1972); Reprinted in [3]CrossRefzbMATHGoogle Scholar
  3. 3.
    Brinch Hansen, P. (ed.): The Origin of Concurrent Programming. Springer, Heidelberg (2002)zbMATHGoogle Scholar
  4. 4.
    Brookes, S.D.: A Semantics for Concurrent Separation Logic. In: Gardner, P., Yoshida, N. (eds.) CONCUR 2004. LNCS, vol. 3170, pp. 16–34. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  5. 5.
    Cardelli, L., Caires, L.: A spatial logic for concurrency. In: Dean, J., Gravel, A. (eds.) ICCBSS 2002. LNCS, vol. 2255, pp. 1–37. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  6. 6.
    Cardelli, L., Gordon, A.D.: Anytime, anywhere. modal logics for mobile ambients. In: 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 365–377 (2000)Google Scholar
  7. 7.
    Clarke, D., Noble, J., Potter, J.: Simple ownership types for object containment. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 53–76. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  8. 8.
    Dijkstra, E.W.: Cooperating sequential processes. In: Genuys, F. (ed.) Programming Languages, pp. 43–112. Academic Press, London (1968); Reprinted in [3]Google Scholar
  9. 9.
    Dijkstra, E.W.: Hierarchical ordering of sequential processes. Acta Informatica 1(2), 115–138 (1971); Reprinted in [3]MathSciNetCrossRefGoogle Scholar
  10. 10.
    Girard, J.-Y.: Linear logic. Theoretical Computer Science 50, 1–102 (1987)MathSciNetCrossRefzbMATHGoogle Scholar
  11. 11.
    Hoare, C.A.R.: Towards a theory of parallel programming. In: Hoare, Perrot (eds.) Operating Systems Techniques. Academic Press, London (1972) (Reprinted in [3])Google Scholar
  12. 12.
    Hoare, C.A.R.: Monitors: An operating system structuring concept. Comm. ACM 17(10), 549–557 (1974); Reprinted in [3]CrossRefzbMATHGoogle Scholar
  13. 13.
    Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall, Englewood Cliffs (1985)zbMATHGoogle Scholar
  14. 14.
    Jones, C.B.: Specification and design of (parallel) programs. In: IFIP Conference (1983)Google Scholar
  15. 15.
    Milner, R.: The polyadic pi-calculus: a tutorial. In: Bauer, F.L., Brauer, W., Schwichtenberg, H. (eds.) Logic and Algebra of Specification, pp. 203–246. Springer, Heidelberg (1993)CrossRefGoogle Scholar
  16. 16.
    O’Hearn, P., Reynolds, J., Yang, H.: Local reasoning about programs that alter data structures. In: Proceedings of 15th Annual Conference of the European Association for Computer Science Logic. LNCS, pp. 1–19. Springer, Heidelberg (2001)Google Scholar
  17. 17.
    O’Hearn, P.W., Pym, D.J.: The logic of bunched implications. Bulletin of Symbolic Logic 5(2), 215–244 (1999)MathSciNetCrossRefzbMATHGoogle Scholar
  18. 18.
    O’Hearn, P.W., Yang, H., Reynolds, J.C.: Separation and information hiding. In: 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Venice, pp. 268–280 (January 2004)Google Scholar
  19. 19.
    Owicki, S., Gries, D.: An axiomatic proof technique for parallel programs. Acta Informatica 19, 319–340 (1976)MathSciNetCrossRefzbMATHGoogle Scholar
  20. 20.
    Owicki, S., Gries, D.: Verifying properties of parallel programs: An axiomatic approach. Comm. ACM 19(5), 279–285 (1976)MathSciNetCrossRefzbMATHGoogle Scholar
  21. 21.
    Pnueli, A.: The temporal semantics of concurrent programs. Theoretical Computer Science 13(1), 45–60 (1981)MathSciNetCrossRefzbMATHGoogle Scholar
  22. 22.
    Reynolds, J.C.: Separation logic: a logic for shared mutable data structures. In: Proceedings of the 17th IEEE Symposium on Logic in Computer Science, pp. 55–74 (2002) (invited paper)Google Scholar
  23. 23.
    Stirling, C.: A generalization of the Owicki-Gries Hoare logic for a concurrent while language. Theoretical Computer Science 58, 347–359 (1988)MathSciNetCrossRefzbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Peter W. O’Hearn
    • 1
  1. 1.Queen Mary, University of LondonUK

Personalised recommendations