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.
- 1 Atkinson, R., and Hewitt, C. Synchronisation in actor systems. Working Paper 83, M.I.T., Cambridge, Mass., Nov. 1976.]]Google Scholar
- 2 Brinch Hansen, P. The programming language Concurrent Pascal. IEEE Trans. Software Eng. 1, 2 (June 1975), 199-207.]]Google Scholar
- 3 Campbell, R.H., and Habermann, A.N. The specification of process synchronisation by path expressions. Lecture Notes in Computer Science 16, Springer, 1974, pp. 89-102.]] Google ScholarDigital Library
- 4 Conway, M.E. Design of a separable transition-diagram compiler. Comm. ACM 6, 7 (July 1963), 396-408.]] Google ScholarDigital Library
- 5 Dahl, O-J., et al. SIMULA 67, common base language. Norwegian Computing Centre, Forskningveien, Oslo, 1967.]] Google ScholarDigital Library
- 6 Dijkstra, E.W. Co-operating sequential processes. In Programming Languages, F. Genuys, Ed., Academic Press, New York, 1968, pp. 43-112.]]Google Scholar
- 7 Dijkstra, E.W. Notes on structured programming. In Structured Programming, Academic Press, New York 1972, pp. 1-82.]] Google ScholarDigital Library
- 8 Dijkstra, E.W. Guarded commands, nondeterminacy, and formal derivation of programs. Comm. A CM 18, 8 (Aug. 1975), 453-457.]] Google ScholarDigital Library
- 9 Dijkstra, E.W. Verbal communication, Marktoberdorf, Aug. 1975.]]Google Scholar
- 10 Hoare, C.A.R. Towards a theory of parallel programming. In Operating Systems Techniques, Academic Press, New York, 1972, pp. 61-71.]]Google Scholar
- 11 Hoare, C.A.R. Proof of correctness of data representations..4cta Informatica 1, 4 (1972), 271-281.]]Google Scholar
- 12 Kahn, G. The semantics of a simple language for parallel programming. In Proc. IFIP Congress 74, North Holland, 1974.]]Google Scholar
- 13 Liskov, B.H. A note on CLU. Computation Structures Group Memo. 112, M.I.T., Cambridge, Mass, 1974.]]Google Scholar
- 14 Mcllroy, M.D. Coroutines. Bell Laboratories, Murray Hill, N.J., 1968.]]Google Scholar
- 15 Naur, P., Ed. Report on the algorithmic language ALGOL 60. Comm. ACM 3, 5 (May 1960), 299-314.]] Google ScholarDigital Library
- 16 Reynolds, J.C. COGENT. ANL-7022, Argonne Nat. Lab., Argonne, II1., 1965.]]Google Scholar
- 17 Thompson, K. The UNIX command language. In Structured Programming, Infotech, Nicholson House, Maidenhead. England, 1976, pp. 375-384.]]Google Scholar
- 18 van Wijngaarden, A. Ed. Report on the algorithmic language ALGOL 68. Numer. Math. 14 (1969), 79-218.]]Google ScholarDigital Library
- 19 Wulf, W.A., London, R.L., and Shaw, M. Abstraction and verification in ALPHARD. Dept. of Comptr. Sci., Carnegie-MeUon U., Pittsburgh, Pa., June 1976.]]Google Scholar
- 20 Wirth, N. The programming language PASCAL. Acta Informatica 1, 1 (1971), 35-63.]]Google ScholarDigital Library
Index Terms
- Communicating sequential processes
Recommendations
Communicating sequential processes
Special 25th Anniversary IssueThis 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,...
Distributed processes: a concurrent programming concept
A language concept for concurrent processes without common variables is introduced. These processes communicate and synchronize by means of procedure calls and guarded regions. This concept is proposed for real-time applications controlled by ...
The programming language Concurrent Pascal
The paper describes a new programming language for structured programming of computer operating systems. It extends the sequential programming language Pascal with concurrent programming tools called processes and monitors. Section I explains these ...
Comments