58 research outputs found
Formalizing Determinacy of Concurrent Revisions
Concurrent revisions is a concurrency control model designed to guarantee
determinacy, meaning that the outcomes of programs are uniquely determined.
This paper describes an Isabelle/HOL formalization of the model's operational
semantics and proof of determinacy. We discuss and resolve subtle ambiguities
in the operational semantics and simplify the proof of determinacy. Although
our findings do not appear to correspond to bugs in implementations, the
formalization highlights some of the challenges involved in the design and
verification of concurrency control models.Comment: To appear in: Proceedings of the 9th ACM SIGPLAN International
Conference on Certified Programs and Proofs (CPP '20), January 20--21, 2020,
New Orleans, LA, USA. ACM, New York, NY, US
Nondeterminism and Guarded Commands
The purpose of this paper is to discuss the relevance of nondeterminism in
computer science, with a special emphasis on Dijkstra's guarded commands
language.Comment: 34 pages. This is authors' version of Chapter 8 of the book K.R. Apt
and C.A.R. Hoare (editors), Edsger Wybe Dijkstra: His Life, Work, and Legacy,
volume 45 of ACM Books. ACM/Morgan & Claypool, 202
Transition systems, metric spaces and ready sets in the semantics of uniform concurrency
AbstractTransition systems as proposed by Hennessy and Plotkin are defined for a series of three languages featuring concurrency. The first has shuffle and local nondeterminacy, the second synchronization merge and local nondeterminacy, and the third synchronization merge and global nondeterminacy. The languages are all uniform in the sense that the elementary actions are uninterpreted. Throughout, infinite behaviour is taken into account and modelled with infinitary languages in the sense of Nivat. A comparison with denotational semantics is provided. For the first two languages, a linear time model suffices; for the third language a branching time model with processes in the sense of de Bakker and Zucker is described. In the comparison an important role is played by an intermediate semantics in the style of Hoare and Olderog's specification oriented semantics. A variant on the notion of ready set is employed here. Precise statements are given relating the various semantics terms of a number of abstraction operators
Integrating Functional and Imperative Parallel Programming: C++ Solutions to the Salishan Problems
We investigate the practical integration of functional and imperative parallel programming in the context of a popular sequential object-based language. As the basis of our investigation, we develop solutions to the Salishan Problems, a set of problems intended as a standard by which to compare parallel programming notations. The language that we use is CC++, C++ extended with single- assignment variables, parallel composition, and atomic functions. We demonstrate how deterministic parallel programs can be written that are identical--except for the addition of a few keywords--to sequential programs that satisfy the same specifications
- …