TY - GEN
T1 - Concurrent abstract predicates
AU - Dinsdale-Young, Thomas
AU - Dodds, Michael David
AU - Gardner, Philippa
AU - Parkinson, Matthew J.
AU - Vafeiadis, Viktor
PY - 2010
Y1 - 2010
N2 - 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.
AB - 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.
UR - http://www.scopus.com/inward/record.url?scp=77955014696&partnerID=8YFLogxK
U2 - 10.1007/978-3-642-14107-2_24
DO - 10.1007/978-3-642-14107-2_24
M3 - Conference contribution
SN - 978-3-642-14106-5
T3 - Lecture Notes in Computer Science
SP - 504
EP - 528
BT - ECOOP 2010 – Object-Oriented Programming
PB - Springer
T2 - 24th European Conference on Object-Oriented Programming (ECOOP 2010)
Y2 - 21 June 2010 through 25 June 2010
ER -