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.

Keywords

Computer scienceStructuringVariety (cybernetics)Programming languageDijkstra's algorithmTheoretical computer scienceSample (material)Artificial intelligenceShortest path problem

Affiliated Institutions

Related Publications

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 struct...

1983 Communications of the ACM 3779 citations

The temporal logic of programs

A unified approach to program verification is suggested, which applies to both sequential and parallel programs. The main proof method suggested is that of temporal reasoning in...

1977 5576 citations

Publication Info

Year
1978
Type
article
Volume
21
Issue
8
Pages
666-677
Citations
3469
Access
Closed

External Links

Social Impact

Altmetric

Social media, news, blog, policy document mentions

Citation Metrics

3469
OpenAlex

Cite This

C. A. R. Hoare (1978). Communicating sequential processes. Communications of the ACM , 21 (8) , 666-677. https://doi.org/10.1145/359576.359585

Identifiers

DOI
10.1145/359576.359585