Communicating sequential processes

@article{Hoare1978CommunicatingSP,
  title={Communicating sequential processes},
  author={Charles Antony Richard Hoare},
  journal={Commun. ACM},
  year={1978},
  volume={21},
  pages={666-677}
}
  • C. Hoare
  • Published 1978
  • Computer Science
  • Commun. ACM
This paper suggests that input and output are basic primitives of programming and that parallel composition of communicating sequential processes is a fundamental program structuring method. When combined with a development of Dijkstra's guarded command, these concepts are surprisingly versatile. Their use is illustrated by sample solutions of a variety of a familiar programming exercises. 
Communicating sequential processes
This paper suggests that input and output are basic primitives of programming and that parallel composition of communicating sequential processes is a fundamental program structuring method. WhenExpand
Design and development of concurrent programs
TLDR
This work obtains a maximal independence between a set of sequential processes which communicate information during their computation generally in an asynchronous way, applicable to numerical or non-numerical algorithms. Expand
Relational Semantics of Strongly Communicating Sequential Processes
TLDR
Rules are presented that show how to find a non-deterministic sequential program "equivalent" to the original parallel program. Expand
Distributed processes: a concurrent programming concept
TLDR
The paper gives several examples of distributed processes and shows that they include procedures, coroutines, classes, monitors, processes, semaphores, buffers, path expressions, and input/output as special cases. Expand
A Refinement of Communicating Processes
TLDR
A refinement calculus of parallel specifications is introduced in which processes refine the safety properties and communications refine the liveness one in the programming of MIMD multiprocessors. Expand
A simple model of distributed programs based on implementation-hiding and process autonomy
TLDR
This paper presents a model for a network of communicating processes that stresses the notion of implementation-hiding, i.e. the invoker of a process or procedure has no knowledge of the implementation of the invoked computation. Expand
Output Guards and Nondeterminism in “Communicating Sequential Processes”
TLDR
This paper points out two problems that arise in connection with guarded commands and nondeterminism in a language for concurrent programming and addresses one of them. Expand
Composition of concurrent programs
  • A. Gopal, K. Perry
  • Computer Science
  • [1993] Proceedings. The 13th International Conference on Distributed Computing Systems
  • 1993
TLDR
A model and a notation are developed for specifying the composition of concurrent programs that requires not only intraprocessor coordination but also interprocessor coordination within a single uniform framework. Expand
Concurrent communication and synchronization mechanisms
TLDR
This paper deals with many of the proposed communication and synchronization primitives and compares them from the perspective of their implementability and treats four basic criteria: the length of synchronization, process termination, deadlock and protocol complexity. Expand
Analysis tool for parallel systems
  • O. J. Saiz, A. Tyrrell
  • Computer Science
  • 1993 Euromicro Workshop on Parallel and Distributed Processing
  • 1993
TLDR
The generated trace set is useful as a static testing tool for the detection of faults within a design, such as deadlocks or incorrect communication structures. Expand
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 36 REFERENCES
The programming language Concurrent Pascal
  • P. B. Hansen
  • Computer Science
  • IEEE Transactions on Software Engineering
  • 1975
TLDR
The main contribution of Concurrent Pascal is to extend the monitor concept with an explicit hierarchy of access rights to shared data structures that can be stated in the program text and checked by a compiler. Expand
Design of a separable transition-diagram compiler
A COBOL compiler design is presented which is compact enough to permit rapid, one-pass compilation of a large subset of COBOL on a moderately large computer. Versions of the same compiler for smallerExpand
Abstraction and verification in Alphard
The Alphard form provides the programmer with a great deal of control over the implementation of abstract data types. In this paper the abstraction techniques are extended from simple data represen...
The specification of process synchronization by path expressions
TLDR
It is shown that the method's ability to express synchronization rules is equivalent to that of P and V operations, and a means of automatically translating path expressions to existing primitive synchronization operations is given. Expand
Monitors: an operating system structuring concept
This paper develops Brinch-Hansen's concept of a monitor as a method of structuring an operating system. It introduces a form of synchronization, describes a possible method of implementation inExpand
Guarded commands, nondeterminacy and formal derivation of programs
So-called “guarded commands” are introduced as a building block for alternative and repetitive constructs that allow nondeterministic program components for which at least the activity evoked, butExpand
The Semantics of a Simple Language for Parallel Programming
  • G. Kahn
  • Computer Science
  • IFIP Congress
  • 1974
TLDR
A simple language for parallel programming is described and its mathematical properties are studied to make a case for more formal languages for systems programming and the design of operating systems. Expand
Co-operating sequential processes
TLDR
The final author version and the galley proof are versions of the publication after peer review that features the final layout of the paper including the volume, issue and page numbers. Expand
Report of Algorithmic Language ALGOL 68
TLDR
Working Group 2.1 on ALGOL of the International Federation for Information Processing has discussed the development of “ALGOL X”, a successor to ALGol 60 since 1963, and invited written descriptions of the language based on the previous discussions. Expand
...
1
2
3
4
...