Resources, Concurrency and Local Reasoning

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.

[1]  Peter W. O'Hearn,et al.  A Decidable Fragment of Separation Logic , 2004, FSTTCS.

[2]  Martin C. Rinard,et al.  ACM Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), November 2002 Ownership Types for Safe Programming: Preventing Data Races and Deadlocks , 2022 .

[3]  John C. Reynolds Toward a Grainless Semantics for Shared-Variable Concurrency , 2004, FSTTCS.

[4]  John Tang Boyland,et al.  Checking Interference with Fractional Permissions , 2003, SAS.

[5]  Keir Fraser,et al.  Language support for lightweight transactions , 2003, SIGP.

[6]  John C. Reynolds,et al.  Separation logic: a logic for shared mutable data structures , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

[7]  Per Brinch Hansen,et al.  Operating System Principles , 1973 .

[8]  David Walker,et al.  Alias Types , 2000, ESOP.

[9]  Peter W. O'Hearn,et al.  The Logic of Bunched Implications , 1999, Bulletin of Symbolic Logic.

[10]  Stephen D. Brookes,et al.  A Semantics for Concurrent Separation Logic , 2004, CONCUR.

[11]  Edsger W. Dijkstra,et al.  Cooperating sequential processes , 2002 .

[12]  James Noble,et al.  Simple Ownership Types for Object Containment , 2001, ECOOP.

[13]  John C. Reynolds Theories of Programming Languages: Shared-Variable Concurrency , 1998 .

[14]  Peter W. O'Hearn,et al.  Local Reasoning about Programs that Alter Data Structures , 2001, CSL.

[15]  Cliff B. Jones,et al.  Specification and Design of (Parallel) Programs , 1983, IFIP Congress.

[16]  John C. Reynolds,et al.  Syntactic control of interference , 1978, POPL.

[17]  Susan Owicki,et al.  An axiomatic proof technique for parallel programs I , 1976, Acta Informatica.

[18]  Maged M. Michael Hazard pointers: safe memory reclamation for lock-free objects , 2004, IEEE Transactions on Parallel and Distributed Systems.

[19]  Cliff B. Jones,et al.  Wanted: a compositional approach to concurrency , 2003 .

[20]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[21]  永田 守男,et al.  Verifying Properties of Parallel Programs : An Axiomatic Approach , 1976 .

[22]  Amir Pnueli The Temporal Semantics of Concurrent Programs , 1981, Theor. Comput. Sci..

[23]  Mike Barnett,et al.  Towards imperative modules: reasoning about invariants and sharing of mutable state , 2004, LICS 2004.

[24]  Luís Caires Behavioral and Spatial Observations in a Logic for the pi-Calculus , 2004, FoSSaCS.

[25]  Peter W. O'Hearn,et al.  A Semantic Basis for Local Reasoning , 2002, FoSSaCS.

[26]  Patrick Lincoln,et al.  Linear logic , 1992, SIGA.

[27]  C. A. R. Hoare,et al.  Procedures and parameters: An axiomatic approach , 1971, Symposium on Semantics of Algorithmic Languages.

[28]  Luca Cardelli,et al.  A Spatial Logic for Concurrency , 2001, TACS.

[29]  K. Mani Chandy,et al.  Proofs of Networks of Processes , 1981, IEEE Transactions on Software Engineering.

[30]  David J. Pym,et al.  A Calculus and logic of resources and processes , 2006, Formal Aspects of Computing.

[31]  Cliff B. Jones,et al.  Interference Revisited , 1990, Z User Workshop.

[32]  A. Nico Habermann Synchronization of communicating processes , 1971, SOSP '71.

[33]  Per Brinch Hansen The Origin of Concurrent Programming , 2002, Springer New York.

[34]  Robin Milner,et al.  The Polyadic π-Calculus: a Tutorial , 1993 .

[35]  Chris Abts COTS-Based Systems (CBS) Functional Density -- A Heuristic for Better CBS Design , 2002, ICCBSS.

[36]  Peter W. O'Hearn,et al.  Separation and information hiding , 2004, POPL.

[37]  Luca Cardelli,et al.  Anytime, anywhere: modal logics for mobile ambients , 2000, POPL '00.

[38]  Colin Stirling,et al.  A Generalization of Owicki-Gries's Hoare Logic for a Concurrent while Language , 1988, Theor. Comput. Sci..

[39]  Edsger W. Dijkstra,et al.  Hierarchical ordering of sequential processes , 1971, Acta Informatica.

[40]  Per Brinch Hansen,et al.  Structured multiprogramming , 1972, CACM.

[41]  Hongseok Yang,et al.  Variables as Resource in Separation Logic , 2005, MFPS.

[42]  Per Brinch Hansen,et al.  The nucleus of a multiprogramming system , 1970, CACM.

[43]  Gregory R. Andrews,et al.  Concurrent programming - principles and practice , 1991 .

[44]  Charles Antony Richard Hoare Towards a theory of parallel programming , 2002 .

[45]  Peter W. O'Hearn,et al.  Permission accounting in separation logic , 2005, POPL '05.

[46]  C. A. R. Hoare,et al.  Monitors: an operating system structuring concept , 1974, CACM.

[47]  H. T. Kung,et al.  Concurrent manipulation of binary search trees , 1980, TODS.