Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Free access

Communicating sequential processes

Published: 01 January 1983 Publication History

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

References

[1]
Atkinson, R., and 14ewitt, C. Synchronisation in actor systems. Working Paper 83, M.I.T., Cambridge, Mass., Nov. 1976.]]
[2]
Bfinch Hansen, P. The programming language Concurrent Pascal. IEEE Trans. Software Eng. 1, 2 (June 1975), 199-207.]]
[3]
Campbell, R.H., arid Habermaan, A.N. The specification of process synchroinsation by path expressions. Lecture Notes in Computer Science 16. Springer, 1974, pp. 89-102.]]
[4]
Conway, M.E. Design of a separable transition-diagram compiler. Comm. ACM 6, 7 (July 1963), 396-408.]]
[5]
Dahl, O-J., et al. SIMULA 67, common base langnage. Norwegian Computing Centre, Forskningveien, Osln, 1967.]]
[6]
Dijkstra, E.W. Cc-operating sequential processes. In Programming Languages, F. Genuys, Ed., Academic press, New York, 1968, pp. 43-112.]]
[7]
Dijkstra, E.W. Notes on strdctured prograraraing. In Structured Programming, Academic Press, New York 1972, pp. 1-82.]]
[8]
Dijkstra, E.W. Guarded commands, nondeterminacy, and formal derivation of programs. Comm. A CM 18, 8 (Aug. 1975), 453457.]]
[9]
Dijkstra, E.W. Verbal communication, Marktoberdorf, Aug. 1975.]]
[10]
Hoare, C.A.R. Towards a theory of parallel programming. In Operating Systems Techniques, Academic Press, New York, 1972. pp. 61-71.]]
[11]
Hoare, C.A.R. Proof of correctness of data representation. Acta lnformatica 1, 4 (1972), 271-281.]]
[12]
Kahn, G. The semantics of a simple language for parallel programming. In Proc. IFIP Congress 74, North Holland, 1974.]]
[13]
Liskov, B.H. A note on CLU. Computation Structures Group Memo. 112, M.I.T., Cambridge, Mass, 1974.]]
[14]
Mcllroy, M.D. Coroutines. Bell Laboratories, Murray Hill N.J., 1968.]]
[15]
Naur, P., Ed. Report on the algorithmic language ALGOL 60. Comm. ACM 3, 5 (May 1960), 299-314.]]
[16]
Reynolds, J.C. COGENT. ANL-7022, Argonne Nat. Lab., Argonne, Ill., 1965.]]
[17]
Thompson, K. The UNIX command language. In Structured Programming, Infotech, Nicholson House, Maidenhead. England, 1976. pp. 375-384.]]
[18]
van Wijngaarden, A. Ed, Report on the algorithmic language ALGOL 68. Numer. Math. 14 (1969), 79-218.]]
[19]
Wulf, W.A., London, R.L., and Shaw, M. Abstraction and verification in ALPHARD. Dept. of Comptr. Sci., Carnegie- Mellon U., Pittsburgh, Pa., June 1976.]]
[20]
Wirth, N. The programming language PASCAL. Acta Informatica 1, I (1971), 35-63.]]

Cited By

View all
  • (2024)Deriving and Verifying B Specifications from Problem Frames Models via Model Transformation2024 IEEE 32nd International Requirements Engineering Conference Workshops (REW)10.1109/REW61692.2024.00033(206-213)Online publication date: 24-Jun-2024
  • (2024)Formalization and Verification of Percolator Using CSP2024 IEEE 48th Annual Computers, Software, and Applications Conference (COMPSAC)10.1109/COMPSAC61105.2024.00350(2183-2188)Online publication date: 2-Jul-2024
  • (2024)Formal Verification and Security Analysis of AMQP2024 IEEE 48th Annual Computers, Software, and Applications Conference (COMPSAC)10.1109/COMPSAC61105.2024.00349(2177-2182)Online publication date: 2-Jul-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Communications of the ACM
Communications of the ACM  Volume 26, Issue 1
Special 25th Anniversary Issue
Jan. 1983
101 pages
ISSN:0001-0782
EISSN:1557-7317
DOI:10.1145/357980
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 January 1983
Published in CACM Volume 26, Issue 1

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. classes
  2. concurrency
  3. conditional critical regions
  4. coroutines
  5. data representations
  6. guarded commands
  7. input
  8. iterative arrays
  9. monitors
  10. multiple entries
  11. multiple exits
  12. nondeterminacy
  13. output
  14. parallel programming
  15. procedures
  16. program structures
  17. programming
  18. programming languages
  19. programming primitives
  20. recursion

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)104
  • Downloads (Last 6 weeks)16
Reflects downloads up to 10 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Deriving and Verifying B Specifications from Problem Frames Models via Model Transformation2024 IEEE 32nd International Requirements Engineering Conference Workshops (REW)10.1109/REW61692.2024.00033(206-213)Online publication date: 24-Jun-2024
  • (2024)Formalization and Verification of Percolator Using CSP2024 IEEE 48th Annual Computers, Software, and Applications Conference (COMPSAC)10.1109/COMPSAC61105.2024.00350(2183-2188)Online publication date: 2-Jul-2024
  • (2024)Formal Verification and Security Analysis of AMQP2024 IEEE 48th Annual Computers, Software, and Applications Conference (COMPSAC)10.1109/COMPSAC61105.2024.00349(2177-2182)Online publication date: 2-Jul-2024
  • (2024)Trace and Algebraic Semantics for Partial Store Order Memory Model2024 IEEE 48th Annual Computers, Software, and Applications Conference (COMPSAC)10.1109/COMPSAC61105.2024.00348(2171-2176)Online publication date: 2-Jul-2024
  • (2024)Formalization and Verification of OpenStack Swift Using CSP2024 IEEE 48th Annual Computers, Software, and Applications Conference (COMPSAC)10.1109/COMPSAC61105.2024.00018(51-60)Online publication date: 2-Jul-2024
  • (2024)SibillaScience of Computer Programming10.1016/j.scico.2024.103095235:COnline publication date: 1-Jul-2024
  • (2024)Artifact Report: Intel PMDK Transactions: Specification, Validation and ConcurrencyProgramming Languages and Systems10.1007/978-3-031-57267-8_7(180-184)Online publication date: 6-Apr-2024
  • (2024)Intel PMDK Transactions: Specification, Validation and ConcurrencyProgramming Languages and Systems10.1007/978-3-031-57267-8_6(150-179)Online publication date: 6-Apr-2024
  • (2023)CSP based Formal Modeling and Verification of Behavior Trees2023 IEEE 23rd International Conference on Software Quality, Reliability, and Security Companion (QRS-C)10.1109/QRS-C60940.2023.00015(1-2)Online publication date: 22-Oct-2023
  • (2023)Analyzing Component Composability of Cloud Security ConfigurationsIEEE Access10.1109/ACCESS.2023.334069011(139935-139951)Online publication date: 2023
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media