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.
References
- 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
Comments