Steps in modular specifications for concurrent modules

The specification of a concurrent program module is a difficult problem. The specifications must be strong enough to enable reasoning about the intended clients without reference to the underlying module implementation. We survey a range of verification techniques for specifying concurrent modules, in particular highlighting four key concepts: auxiliary state, interference abstraction, resource ownership and atomicity. We show how these concepts combine to provide powerful approaches to specifying concurrent modules.

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

[2]  Viktor Vafeiadis,et al.  Concurrent Abstract Predicates , 2010, ECOOP.

[3]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[4]  Aleksandar Nanevski,et al.  Subjective auxiliary state for coarse-grained concurrency , 2013, POPL.

[5]  Peter W. O'Hearn,et al.  Abstraction for Concurrent Objects , 2009, ESOP.

[6]  Peter W. O'Hearn,et al.  Resources, concurrency, and local reasoning , 2007 .

[7]  Lars Birkedal,et al.  Unifying refinement and hoare-style reasoning in a logic for higher-order concurrency , 2013, ICFP.

[8]  Lars Birkedal,et al.  Impredicative Concurrent Abstract Predicates , 2014, ESOP.

[9]  Lars Birkedal,et al.  Modular Reasoning about Separation of Concurrent Data Structures , 2013, ESOP.

[10]  Viktor Vafeiadis,et al.  Modular fine-grained concurrency verification , 2008 .

[11]  Ilya Sergey,et al.  Communicating State Transition Systems for Fine-Grained Concurrent Resources , 2014, ESOP.

[12]  Xinyu Feng,et al.  Deny-Guarantee Reasoning , 2009, ESOP.

[13]  Hongseok Yang,et al.  Linearizability with Ownership Transfer , 2012, CONCUR.

[14]  Frank Piessens,et al.  Expressive modular fine-grained concurrency specification , 2011, POPL '11.

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

[16]  Lars Birkedal,et al.  Iris: Monoids and Invariants as an Orthogonal Basis for Concurrent Reasoning , 2015, POPL.

[17]  Hongseok Yang,et al.  Views: compositional reasoning for concurrent programs , 2013, POPL.

[18]  Philippa Gardner,et al.  TaDA: A Logic for Time and Data Abstraction , 2014, ECOOP.

[19]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

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

[21]  Xinyu Feng Local rely-guarantee reasoning , 2009, POPL '09.