Elucidating concurrent algorithms via layers of abstraction and reification - Archive ouverte HAL Accéder directement au contenu
Article Dans Une Revue Formal Aspects of Computing Année : 2010

Elucidating concurrent algorithms via layers of abstraction and reification

Résumé

Arguing that intricate concurrent programs satisfy their specifications can be difficult; recording understandable explanations is important for subsequent readers. Abstraction is a key tool even for sequential programs. The purpose here is to explore some abstractions that help readers (and writers) understand the design of concurrent programs. As an illustration, the paper presents a formal development of a non-trivial parallel program: Simpson's implementation of asynchronous communication mechanisms. Although the correctness of this "4-slot algorithm" has been shown elsewhere, earlier proofs fail to offer much insight into the design. From an understandable (yet formal) design history of this one algorithm, the techniques employed in the explanation are teased out for wider application. Among these techniques is using a "fiction of atomicity" as an aid to understanding the initial steps of development. The rely-guarantee approach is, here, combined with notions of read/write frames and "phased" specifications; furthermore, the atomicity assumptions implied by the rely/guarantee conditions are achieved by clever choice of data representations.
Fichier principal
Vignette du fichier
PEER_stage2_10.1007%2Fs00165-010-0156-1.pdf (204.88 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-00594490 , version 1 (20-05-2011)

Identifiants

Citer

Cliff B. Jones, Ken G. Pierce. Elucidating concurrent algorithms via layers of abstraction and reification. Formal Aspects of Computing, 2010, 23 (3), pp.289-306. ⟨10.1007/s00165-010-0156-1⟩. ⟨hal-00594490⟩

Collections

PEER
45 Consultations
133 Téléchargements

Altmetric

Partager

Gmail Facebook X LinkedIn More