An algebraic calculus of asynchronous parallel computation, called CCS (Calculus of Communicating Systems), was developed in [HM,Mil 1]. CCS can express both the semantics of parallel programming languages and the behaviour of data structures (mailbox, random access memory, buffer) which serve as interfaces between independent agents. The primitive notion is 'handshake' communication. The emphasis is upon (i) synthesis from components and (ii) extensionality (meaning &equil; observable behaviour), in contrast with Petri's Net theory which emphasizes causal independence.
Here CCS is broadened to embrace synchrony, or systems which depend critically upon the timing of their components. The extension is not adhoc; it is shown that with just four combinators one may both express synchrony and derive CCS in a precise sense. In fact more is gained; it is shown in [Mil 4] how the dynamic reconfiguration of agent linkage, which was outside the scope of the original calculus, may now be expressed. Moreover the four combinators seem, informally speaking, to represent notions which are fully orthogonal to each other, and so to provide a somewhat deeper and intellectually clearer foundation for distributed computation than CCS (which in turn, at its higher level, has some advantages in manipulation). This foundation does not presume a particular abstract notion of process, which in the author's view is still a contentious matter, but rather allows candidates for such a notion to be defined and compared; each such candidate will be a congruence class for some congruence relation in the calculus.
[1]
Glynn Winskel,et al.
Petri Nets, Event Structures and Domains
,
1979,
Semantics of Concurrent Computation.
[2]
Matthew Hennessy,et al.
A Term Model for Synchronous Processes
,
1981,
Inf. Control..
[3]
Robin Milner,et al.
A Calculus of Communicating Systems
,
1980,
Lecture Notes in Computer Science.
[4]
Luca Cardelli,et al.
Real Time Agents
,
1982,
International Colloquium on Automata, Languages and Programming.
[5]
Robin Milner,et al.
On Observing Nondeterminism and Concurrency
,
1980,
ICALP.
[6]
David Park,et al.
Concurrency and Automata on Infinite Sequences
,
1981,
Theoretical Computer Science.
[7]
Glynn Winskel,et al.
Event Structure Semantics for CCS and Related Languages
,
1982,
ICALP.
[8]
Leslie Lamport,et al.
"Sometime" is sometimes "not never": on the temporal logic of programs
,
1980,
POPL '80.
[9]
Amir Pnueli.
The Temporal Semantics of Concurrent Programs
,
1981,
Theor. Comput. Sci..
[10]
Robin Milner,et al.
On relating synchrony and asynchrony
,
1980
.
[11]
C. A. R. Hoare,et al.
A Theory of Communicating Sequential Processes
,
1984,
JACM.
[12]
Robin Milner,et al.
A Complete Inference System for a Class of Regular Behaviours
,
1984,
J. Comput. Syst. Sci..
[13]
Robin Milner,et al.
Calculi for Synchrony and Asynchrony
,
1983,
Theor. Comput. Sci..