skip to main content
research-article

Views: compositional reasoning for concurrent programs

Published:23 January 2013Publication History
Skip Abstract Section

Abstract

Compositional abstractions underly many reasoning principles for concurrent programs: the concurrent environment is abstracted in order to reason about a thread in isolation; and these abstractions are composed to reason about a program consisting of many threads. For instance, separation logic uses formulae that describe part of the state, abstracting the rest; when two threads use disjoint state, their specifications can be composed with the separating conjunction. Type systems abstract the state to the types of variables; threads may be composed when they agree on the types of shared variables.

In this paper, we present the "Concurrent Views Framework", a metatheory of concurrent reasoning principles. The theory is parameterised by an abstraction of state with a notion of composition, which we call views. The metatheory is remarkably simple, but highly applicable: the rely-guarantee method, concurrent separation logic, concurrent abstract predicates, type systems for recursive references and for unique pointers, and even an adaptation of the Owicki-Gries method can all be seen as instances of the Concurrent Views Framework. Moreover, our metatheory proves each of these systems is sound without requiring induction on the operational semantics.

Skip Supplemental Material Section

Supplemental Material

r2d2_talk2.mp4

mp4

199.2 MB

References

  1. A. Ahmed, M. Fluet, and G. Morrisett. L3: A linear language with locations. Fundam. Inform., 77(4):397--449, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. L. Birkedal, N. Torp-Smith, and H. Yang. Semantics of separationlogic typing and higher-order frame rules for Algol-like languages. LMCS, 2(5:1), 2006.Google ScholarGoogle Scholar
  3. L. Birkedal, B. Reus, J. Schwinghammer, and H. Yang. A simple model of separation logic for higher-order store. In ICALP, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. R. Bornat, C. Calcagno, P. O'Hearn, and M. Parkinson. Permission accounting in separation logic. In POPL'05, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. C. Calcagno, P. Gardner, and U. Zarfaty. Local reasoning about data update. ENTCS, 172:133--175, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. C. Calcagno, P. W. O'Hearn, and H. Yang. Local action and abstract separation logic. In LICS, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. A. Charguéraud and F. Pottier. Functional translation of a calculus of capabilities. In ICFP, pages 213--224, 2008.Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. T. Dinsdale-Young. Abstract Data and Local Reasoning. PhD thesis, Imperial College, Department of Computing, 2010.Google ScholarGoogle Scholar
  9. T. Dinsdale-Young, M. Dodds, P. Gardner, M. J. Parkinson, and V. Vafeiadis. Concurrent abstract predicates. In ECOOP, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. T. Dinsdale-Young, P. Gardner, and M. Wheelhouse. Abstraction and refinement for local reasoning. In VSTTE, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. T. Dinsdale-Young, L. Birkedal, P. Gardner, M. Parkinson, and H. Yang. Views: Compositional reasoning for concurrent programs (technical report and addditional material). http://sites.google.com/site/viewsmodel/, 2012.Google ScholarGoogle Scholar
  12. R. Dockins, A. Hobor, and A. W. Appel. A fresh look at separation algebras and share accounting. In APLAS, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. Dodds, X. Feng, M. J. Parkinson, and V. Vafeiadis. Deny-guarantee reasoning. In ESOP, pages 363--377, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. X. Feng. Local rely-guarantee reasoning. In POPL, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. X. Feng, R. Ferreira, and Z. Shao. On the relationship between concurrent separation logic and assume-guarantee reasoning. In ESOP, pages 173--188, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. P. Gardner, G. Nzik, and A. Wright. Reasoning about POSIX file systems using structural separation logic. Draft, 2012.Google ScholarGoogle Scholar
  17. C. Gordon, M. Parkinson, J. Parsons, A. Bromfield, and J. Duffy. Uniqueness and reference immutability for safe parallelism. In OOPSLA, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. S. S. Ishtiaq and P. W. O'Hearn. BI as an assertion language for mutable data structures. In POPL, pages 14--26, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. J. B. Jensen and L. Birkedal. Fictional separation logic. In ESOP, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. C. B. Jones. Tentative steps toward a development method for interfering programs. ACM TOPLAS, 5(4):596--619, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. N. Krishnaswami, L. Birkedal, and J. Aldrich. Verifying event-driven programs using ramified frame properties. In TLDI, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. N. Krishnaswami, A. Turon, D. Dreyer, and D. Garg. Superficially substructural types. In ICFP, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. G. Morrisett, D. Walker, K. Crary, and N. Glew. From system F to typed assembly language. TOPLAS, 21(3):527--568, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. S. Owicki and D. Gries. An axiomatic proof technique for parallel programs I. Acta Informatica, 6(4):319--340, 1976.Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. M. J. Parkinson, R. Bornat, and P. O'Hearn. Modular verification of a non-blocking stack. In POPL, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. F. Pottier. Syntactic soundness proof of a type-and-capability system with hidden state. Technical report, INRIA, 2011.Google ScholarGoogle Scholar
  27. J. C. Reynolds. Separation logic: A logic for shared mutable data structures. In LICS, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. J. Smans, B. Jacobs, and F. Piessens. Implicit dynamic frames: Combining dynamic frames and separation logic. In ECOOP, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. F. Smith, D. Walker, and J. G. Morrisett. Alias types. In ESOP, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. K. Svendsen, L. Birkedal, and M. Parkinson. A specification of the joins library in higher-order separation logic. Technical report, IT University of Copenhagen, 2012.Google ScholarGoogle Scholar
  31. V. Vafeiadis and M. J. Parkinson. A marriage of rely/guarantee and separation logic. In CONCUR, pages 256--271, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Views: compositional reasoning for concurrent programs

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 48, Issue 1
        POPL '13
        January 2013
        561 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/2480359
        Issue’s Table of Contents
        • cover image ACM Conferences
          POPL '13: Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
          January 2013
          586 pages
          ISBN:9781450318327
          DOI:10.1145/2429069

        Copyright © 2013 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 23 January 2013

        Check for updates

        Qualifiers

        • research-article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader