A perspective on specifying and verifying concurrent modules
File(s)1-s2.0-S2352220817300871-main.pdf (611.63 KB)
Published version
Author(s)
Dinsdale-Young, TW
da Rocha Pinto, P
Gardner, PA
Type
Journal Article
Abstract
The specification of a concurrent program module, and the verification of implementations and clients with respect to such a specification, are difficult problems. A specification should be general enough that any reasonable implementation satisfies it, yet precise enough that it can be used by any reasonable client. We survey a range of techniques for specifying concurrent modules, using the example of a counter module to illustrate the benefits and limitations of each. In particular, we highlight four key concepts underpinning these techniques: auxiliary state, interference abstraction, resource ownership and atomicity. We demonstrate how these concepts can be combined to achieve two powerful approaches for specifying concurrent modules and verifying implementations and clients, which remove the limitations highlighted by the counter example.
Date Issued
2018-04-02
Date Acceptance
2018-03-19
Citation
Journal of Logical and Algebraic Methods in Programming, 2018, 98, pp.1-25
ISSN
2352-2208
Publisher
Elsevier
Start Page
1
End Page
25
Journal / Book Title
Journal of Logical and Algebraic Methods in Programming
Volume
98
Copyright Statement
© 2018 The Authors. Published by Elsevier Inc. This is an open access article under the CC BY license
(http://creativecommons.org/licenses/by/4.0/)
(http://creativecommons.org/licenses/by/4.0/)
Sponsor
Engineering & Physical Science Research Council (E
Engineering & Physical Science Research Council (E
Grant Number
EP/K008528/1
EP/K008528/1
Subjects
Concurrency
Specification
Program verification
Publication Status
Published
Date Publish Online
2018-04-05