Communicating sequential processes
C. A. R. Hoare
Communications of the ACM
Abstract
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.
Concepts
Computer scienceStructuringVariety (cybernetics)Programming languageDijkstra's algorithmTheoretical computer scienceSample (material)