A protocol for generalized occam
Software—Practice & Experience
Joyce—a programming language for distributed systems
Software—Practice & Experience
Synchronous operations as first-class values
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Synchronization of asynchronous processes in CSP
ACM Transactions on Programming Languages and Systems (TOPLAS)
Using MPI (2nd ed.): portable parallel programming with the message-passing interface
Using MPI (2nd ed.): portable parallel programming with the message-passing interface
An Effective Implementation for the Generalized Input-Output Construct of CSP
ACM Transactions on Programming Languages and Systems (TOPLAS)
Communicating sequential processes
Communications of the ACM
A Distributed Protocol for Channel-Based Communication with Choice
PARLE '92 Proceedings of the 4th International PARLE Conference on Parallel Architectures and Languages Europe
Kill-safe synchronization abstractions
Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Communication and Synchronization in Distributed Systems
IEEE Transactions on Software Engineering
Concurrent software engineering: preparing for paradigm shift
Proceedings of the 2008 C3S2E conference
Programming Erlang: Software for a Concurrent World
Programming Erlang: Software for a Concurrent World
A concurrent ML library in concurrent Haskell
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
Since Hoare introduced Communicating Sequential Processes as a model of distributed computation, there has been much discussion about efficient and flexible implementations. Previous research has led to communication protocols with restrictions: a process may only choose amongst receive operations; only a single pair of processes can be connected to a channel; or the protocol may be subject to deadlock or lack of fairness. We describe a fair protocol that allows arbitrary, non-deterministic communication amongst a set of processes connected by channels.