skip to main content
10.1145/1926385.1926415acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
research-article

A separation logic for refining concurrent objects

Published: 26 January 2011 Publication History

Abstract

Fine-grained concurrent data structures are crucial for gaining performance from multiprocessing, but their design is a subtle art. Recent literature has made large strides in verifying these data structures, using either atomicity refinement or separation logic with rely-guarantee reasoning. In this paper we show how the ownership discipline of separation logic can be used to enable atomicity refinement, and we develop a new rely-guarantee method that is localized to the definition of a data structure. We present the first semantics of separation logic that is sensitive to atomicity, and show how to control this sensitivity through ownership. The result is a logic that enables compositional reasoning about atomicity and interference, even for programs that use fine-grained synchronization and dynamic memory allocation.

Supplementary Material

MP4 File (24-mpeg-4.mp4)

References

[1]
R. J. Back and J. von Wright. Refinement calculus: a systematic introduction. Springer, 1998.
[2]
S. Brookes. Full abstraction for a shared variable parallel language. Information and Computation, 127(2):145--163, 1996.
[3]
C. Calcagno, P. W. O'Hearn, and H. Yang. Local action and abstract separation logic. In LICS, pages 366--378. IEEE Computer Society, 2007.
[4]
T. Dinsdale-Young, M. Dodds, P. Gardner, M. Parkinson, and V. Vafeiadis. Concurrent abstract predicates. In ECOOP, June 2010.
[5]
T. Elmas, S. Qadeer, and S. Tasiran. A calculus of atomic actions. In POPL, pages 2--15. ACM, 2009.
[6]
T. Elmas, S. Qadeer, A. Sezgin, O. Subasi, and S. Tasiran. Simplifying linearizability proofs with reduction and abstraction. In TACAS, pages 296--311. Springer, 2010.
[7]
X. Feng. Local rely-guarantee reasoning. In POPL, pages 315--327. ACM, 2009.
[8]
I. Filipović, P. O'Hearn, N. Rinetzky, and H. Yang. Abstraction for concurrent objects. In ESOP, pages 252--266. Springer, 2009.
[9]
L. Groves. Reasoning about nonblocking concurrency. JUCS, 15(1):72--111, 2009.
[10]
M. Herlihy and N. Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann, 2008.
[11]
M. P. Herlihy and J. M. Wing. Linearizability: a correctness condition for concurrent objects. TOPLAS, 12(3):463--492, 1990.
[12]
C. B. Jones. Tentative steps toward a development method for interfering programs. TOPLAS, 5(4):596--619, 1983.
[13]
A. Kock. Strong functors and monoidal monads. Archiv der Mathematik, 23:113--120, 1971. ISSN 1.
[14]
R. J. Lipton. Reduction: a method of proving properties of parallel programs. Commun. ACM, 18(12):717--721, 1975.
[15]
B. Liskov and S. Zilles. Programming with abstract data types. In Symposium on Very high level languages, pages 50--59. ACM, 1974.
[16]
M. M. Michael. Hazard pointers: Safe memory reclamation for lock-free objects. IEEE Transactions on Parallel and Distributed Systems, 15:491--504, 2004. ISSN 1045--9219.
[17]
M. M. Michael and M. L. Scott. Nonblocking algorithms and preemption-safe locking on multiprogrammed shared memory multiprocessors. J. Parallel Distrib. Comput., 51(1):1--26, 1998.
[18]
R. Milner. A Calculus of Communicating Systems. Springer-Verlag New York, Inc., 1982.
[19]
J. C. Mitchell and G. D. Plotkin. Abstract types have existential type. TOPLAS, 10(3):470--502, 1988.
[20]
M. Moir and N. Shavit. Concurrent data structures. In Handbook of Data Structures and Applications, D. Metha and S. Sahni Editors, pages 47--14--47--30, 2007. Chapman and Hall/CRC Press.
[21]
C. Morgan and T. Vickers. On the refinement calculus. Springer, 1993.
[22]
J. H. Morris, Jr. Protection in programming languages. CACM, 16(1):15--21, 1973.
[23]
P. W. O'Hearn. Resources, concurrency, and local reasoning. Theor. Comput. Sci., 375(1--3):271--307, 2007.
[24]
M. Parkinson and G. Bierman. Separation logic and abstraction. POPL, 40(1):247--258, 2005.
[25]
D. Sangiorgi and D. Walker. Pi-Calculus: A Theory of Mobile Processes. Cambridge University Press, 2001.
[26]
R. K. Treiber. Systems programming: coping with parallelism. Technical report, Almaden Research Center, 1986.
[27]
V. Vafeiadis. Modular fine-grained concurrency verification. PhD thesis, University of Cambridge, 2008.
[28]
V. Vafeiadis and M. Parkinson. A marriage of rely/guarantee and separation logic. In CONCUR, pages 256--271. Springer, 2007.
[29]
R. J. van Glabbeek. The linear time - branching time spectrum. In CONCUR, pages 278--297. Springer, 1990.

Cited By

View all
  • (2024)Compositional Semantics for Shared-Variable ConcurrencyProceedings of the ACM on Programming Languages10.1145/36563998:PLDI(543-566)Online publication date: 20-Jun-2024
  • (2024)A Denotational Approach to Release/Acquire ConcurrencyProgramming Languages and Systems10.1007/978-3-031-57267-8_5(121-149)Online publication date: 6-Apr-2024
  • (2022)Mechanized verification of a fine-grained concurrent queue from meta’s folly libraryProceedings of the 11th ACM SIGPLAN International Conference on Certified Programs and Proofs10.1145/3497775.3503689(100-115)Online publication date: 17-Jan-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
POPL '11: Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
January 2011
652 pages
ISBN:9781450304900
DOI:10.1145/1926385
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 46, Issue 1
    POPL '11
    January 2011
    624 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1925844
    Issue’s Table of Contents
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]

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 26 January 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. atomicity
  2. concurrent programming
  3. formal verification
  4. refinement
  5. rely-guarantee
  6. shared-memory concurrency

Qualifiers

  • Research-article

Conference

POPL '11
Sponsor:

Acceptance Rates

Overall Acceptance Rate 860 of 4,328 submissions, 20%

Upcoming Conference

POPL '26

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)28
  • Downloads (Last 6 weeks)1
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Compositional Semantics for Shared-Variable ConcurrencyProceedings of the ACM on Programming Languages10.1145/36563998:PLDI(543-566)Online publication date: 20-Jun-2024
  • (2024)A Denotational Approach to Release/Acquire ConcurrencyProgramming Languages and Systems10.1007/978-3-031-57267-8_5(121-149)Online publication date: 6-Apr-2024
  • (2022)Mechanized verification of a fine-grained concurrent queue from meta’s folly libraryProceedings of the 11th ACM SIGPLAN International Conference on Certified Programs and Proofs10.1145/3497775.3503689(100-115)Online publication date: 17-Jan-2022
  • (2016)Effect-dependent transformations for concurrent programsProceedings of the 18th International Symposium on Principles and Practice of Declarative Programming10.1145/2967973.2968602(188-201)Online publication date: 5-Sep-2016
  • (2015)Verifying LinearisabilityACM Computing Surveys10.1145/279655048:2(1-43)Online publication date: 24-Sep-2015
  • (2015)Specifying Compatible Sharing in Data StructuresFormal Methods and Software Engineering10.1007/978-3-319-25423-4_23(349-365)Online publication date: 1-Dec-2015
  • (2015)Automated and Modular Refinement Reasoning for Concurrent ProgramsComputer Aided Verification10.1007/978-3-319-21668-3_26(449-465)Online publication date: 14-Jul-2015
  • (2014)A Sound and Complete Proof Technique for Linearizability of Concurrent Data StructuresACM Transactions on Computational Logic10.1145/262949615:4(1-37)Online publication date: 12-Sep-2014
  • (2014)Atomicity Refinement for Verified CompilationACM Transactions on Programming Languages and Systems10.1145/260133936:2(1-30)Online publication date: 1-Jul-2014
  • (2014)Rely-Guarantee-Based Simulation for Compositional Verification of Concurrent Program TransformationsACM Transactions on Programming Languages and Systems10.1145/257623536:1(1-55)Online publication date: 1-Mar-2014
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media