Algebraic laws for nondeterminism and concurrency
- 1 January 1985
- journal article
- Published by Association for Computing Machinery (ACM) in Journal of the ACM
- Vol. 32 (1) , 137-161
- https://doi.org/10.1145/2455.2460
Abstract
Since a nondeterministic and concurrent program may, in general, communicate repeatedly with its environment, its meaning cannot be presented naturally as an input/output function (as is often done in the denotational approach to semantics). In this paper, an alternative is put forth. First, a definition is given of what it is for two programs or program parts to be equivalent for all observers; then two program parts are said to be observation congruent if they are, in all program contexts, equivalent. The behavior of a program part, that is, its meaning, is defined to be its observation congruence class. The paper demonstrates, for a sequence of simple languages expressing finite (terminating) behaviors, that in each case observation congruence can be axiomatized algebraically. Moreover, with the addition of recursion and another simple extension, the algebraic language described here becomes a calculus for writing and specifying concurrent programs and for proving their properties.Keywords
This publication has 6 references indexed in Scilit:
- On observing nondeterminism and concurrencyLecture Notes in Computer Science, 1980
- Concurrent Processes and Their SyntaxJournal of the ACM, 1979
- The Denotational Description of Programming LanguagesPublished by Springer Nature ,1979
- Full abstraction for a simple parallel programming languagePublished by Springer Nature ,1979
- Synthesis of communicating behaviourPublished by Springer Nature ,1978
- A Powerdomain ConstructionSIAM Journal on Computing, 1976