Authors
Thomas Dinsdale-Young, Mike Dodds, Philippa Gardner, Matthew J Parkinson, Viktor Vafeiadis
Publication date
2010
Conference
ECOOP 2010–Object-Oriented Programming: 24th European Conference, Maribor, Slovenia, June 21-25, 2010. Proceedings 24
Pages
504-528
Publisher
Springer Berlin Heidelberg
Description
Abstraction is key to understanding and reasoning about large computer systems. Abstraction is simple to achieve if the relevant data structures are disjoint, but rather difficult when they are partially shared, as is often the case for concurrent modules. We present a program logic for reasoning abstractly about data structures that provides a fiction of disjointness and permits compositional reasoning. The internal details of a module are completely hidden from the client by concurrent abstract predicates. We reason about a module’s implementation using separation logic with permissions, and provide abstract specifications for use by client programs using concurrent abstract predicates. We illustrate our abstract reasoning by building two implementations of a lock module on top of hardware instructions, and two implementations of a concurrent set module on top of the lock module.
Total citations
2010201120122013201420152016201720182019202020212022202320248161928273124422022162216149
Scholar articles
T Dinsdale-Young, M Dodds, P Gardner, MJ Parkinson… - ECOOP 2010–Object-Oriented Programming: 24th …, 2010