Some Challenges of Specifying Concurrent Program Components
Ian J. Hayes (The University of Queensland)

TL;DR
This paper discusses the challenges in formally specifying shared-memory concurrent program components, focusing on atomicity, blocking, progress, and transactional operations, to aid both clients and implementation refinement.
Contribution
It introduces approaches for creating abstract specifications suitable for various contexts, addressing atomicity, blocking, progress, and transactional failures in concurrent components.
Findings
Proposes different specification forms for concurrent components
Addresses atomicity and blocking in shared-memory systems
Explores handling transactional retries in specifications
Abstract
The purpose of this paper is to address some of the challenges of formally specifying components of shared-memory concurrent programs. The focus is to provide an abstract specification of a component that is suitable for use both by clients of the component and as a starting point for refinement to an implementation of the component. We present some approaches to devising specifications, investigating different forms suitable for different contexts. We examine handling atomicity of access to data structures, blocking operations and progress properties, and transactional operations that may fail and need to be retried.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
