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.  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 familiar programming exercises.

CACM August, 1978

Hoare, C.

Programming, programming languages, programming primitives,
program structures, parallel programming, 
concurrency, input, output, guarded commands, nondeterminacy,
coroutines, procedures, multiple entries, 
multiple exits, classes, data representations, recursion,
conditional critical regions, monitors, iterative 
arrays

4.20 4.22 4.32

CA780805 DH February 7, 1979  10:07 AM

249	4	3073
254	4	3073
272	4	3073
1102	4	3073
1109	4	3073
1140	4	3073
1188	4	3073
1306	4	3073
1323	4	3073
1358	4	3073
1380	4	3073
1464	4	3073
1491	4	3073
1665	4	3073
1767	4	3073
1781	4	3073
1781	4	3073
1787	4	3073
1787	4	3073
1949	4	3073
1989	4	3073
321	4	3073
2059	4	3073
2112	4	3073
2126	4	3073
2534	4	3073
2541	4	3073
435	4	3073
437	4	3073
463	4	3073
483	4	3073
491	4	3073
2698	4	3073
2732	4	3073
2733	4	3073
2820	4	3073
2896	4	3073
2972	4	3073
560	4	3073
583	4	3073
3037	4	3073
3039	4	3073
3043	4	3073
3073	4	3073
3073	4	3073
3073	4	3073
3155	4	3073
627	4	3073
631	4	3073
632	4	3073
642	4	3073
644	4	3073
653	4	3073
680	4	3073
761	4	3073
762	4	3073
763	4	3073
123	4	3073
140	4	3073
919	4	3073
989	4	3073
196	5	3073
2732	5	3073
3073	5	3073
3073	5	3073
3073	5	3073
3148	5	3073
3150	5	3073
3155	5	3073
799	5	3073
1860	6	3073
2060	6	3073
2204	6	3073
2247	6	3073
2704	6	3073
2817	6	3073
2842	6	3073
2865	6	3073
2939	6	3073
2939	6	3073
2940	6	3073
2941	6	3073
2943	6	3073
3073	6	3073
3073	6	3073
3073	6	3073
3148	6	3073
799	6	3073