Concurrent abstract predicates

158Citations
Citations of this article
45Readers
Mendeley users who have this article in their library.
Get full text

Abstract

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. © 2010 Springer-Verlag Berlin Heidelberg.

Cite

CITATION STYLE

APA

Dinsdale-Young, T., Dodds, M., Gardner, P., Parkinson, M. J., & Vafeiadis, V. (2010). Concurrent abstract predicates. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 6183 LNCS, pp. 504–528). https://doi.org/10.1007/978-3-642-14107-2_24

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free