Abstract types have existential type
ACM Transactions on Programming Languages and Systems (TOPLAS)
Tentative steps toward a development method for interfering programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Nonblocking algorithms and preemption-safe locking on multiprogrammed shared memory multiprocessors
Journal of Parallel and Distributed Computing
Reduction: a method of proving properties of parallel programs
Communications of the ACM
Protection in programming languages
Communications of the ACM
A Calculus of Communicating Systems
A Calculus of Communicating Systems
Refinement Calculus: A Systematic Introduction
Refinement Calculus: A Systematic Introduction
PI-Calculus: A Theory of Mobile Processes
PI-Calculus: A Theory of Mobile Processes
On the Refinement Calculus
The Linear Time-Branching Time Spectrum (Extended Abstract)
CONCUR '90 Proceedings of the Theories of Concurrency: Unification and Extension
Programming with abstract data types
Proceedings of the ACM SIGPLAN symposium on Very high level languages
Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects
IEEE Transactions on Parallel and Distributed Systems
Transition predicate abstraction and fair termination
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Resources, concurrency, and local reasoning
Theoretical Computer Science
Local Action and Abstract Separation Logic
LICS '07 Proceedings of the 22nd Annual IEEE Symposium on Logic in Computer Science
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Local rely-guarantee reasoning
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Abstraction for Concurrent Objects
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
The Art of Multiprocessor Programming
The Art of Multiprocessor Programming
Concurrent abstract predicates
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Simplifying linearizability proofs with reduction and abstraction
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
A marriage of rely/guarantee and separation logic
CONCUR'07 Proceedings of the 18th international conference on Concurrency Theory
Modular verification of preemptive OS kernels
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
A simple abstraction for complex concurrent indexes
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
A rely-guarantee-based simulation for verifying concurrent program transformations
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Verification of scalable synchronous queue
CPP'11 Proceedings of the First international conference on Certified Programs and Proofs
FOSSACS'12 Proceedings of the 15th international conference on Foundations of Software Science and Computational Structures
How to prove algorithms linearisable
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Linearizability with ownership transfer
CONCUR'12 Proceedings of the 23rd international conference on Concurrency Theory
Logical relations for fine-grained concurrency
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Modular verification of linearizability with non-fixed linearization points
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Rely-Guarantee-Based Simulation for Compositional Verification of Concurrent Program Transformations
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.00 |
Fine-grained concurrent data structures are crucial for gaining performance from multiprocessing, but their design is a subtle art. Recent literature has made large strides in verifying these data structures, using either atomicity refinement or separation logic with rely-guarantee reasoning. In this paper we show how the ownership discipline of separation logic can be used to enable atomicity refinement, and we develop a new rely-guarantee method that is localized to the definition of a data structure. We present the first semantics of separation logic that is sensitive to atomicity, and show how to control this sensitivity through ownership. The result is a logic that enables compositional reasoning about atomicity and interference, even for programs that use fine-grained synchronization and dynamic memory allocation.