Invited Tutorial Paper)

The specication of a concurrent program module is a dicult problem. The specications must be strong enough to enable reasoning about the intended clients without reference to the underlying module implementation. We survey a range of verication 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]  Lars Birkedal,et al.  Iris: Monoids and Invariants as an Orthogonal Basis for Concurrent Reasoning , 2015, POPL.

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

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

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

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

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

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

[8]  Michael L. Scott,et al.  Algorithms for scalable synchronization on shared-memory multiprocessors , 1991, TOCS.

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

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

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

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

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

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

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

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

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

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

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

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