Some Challenges of Specifying Concurrent Program Components

10/23/2018
by   Ian J. Hayes, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/23/2018

Refining Santa: An Exercise in Efficient Synchronization

The Santa Claus Problem is an intricate exercise for concurrent programm...
research
03/29/2021

Deriving Laws for Developing Concurrent Programs in a Rely-Guarantee Style

In this paper we present a theory for the refinement of shared-memory co...
research
06/21/2018

Strict Linearizability and Abstract Atomicity

Linearizability is a commonly accepted consistency condition for concurr...
research
04/04/2018

Maintenance of Strongly Connected Component in Shared-memory Graph

In this paper, we propose a generic concurrent directed graph (for share...
research
06/26/2018

Verification of Shared-Reading Synchronisers

Synchronisation classes are an important building block for shared memor...
research
02/08/2020

Paving the way for Distributed Non-Blocking Algorithms and Data Structures in the Partitioned Global Address Space

The partitioned global address space has bridged the gap between shared ...
research
09/04/2018

A Simple and Practical Concurrent Non-blocking Unbounded Graph with Reachability Queries

Graph algorithms applied in many applications, including social networks...

Please sign up or login with your details

Forgot password? Click here to reset