Definition
Communicating Sequential Processes (CSP) is a mathematical notation for describing patterns of interaction. It has been used in the analysis of concurrent behavior in a variety of applications; it has inspired the design of concurrency mechanisms and primitives in several programming languages; it remains a focus for research and development in both academia and industry.
Process Language
In the CSP notation, processes are used to specify the behavior of components, to express assumptions about behavior, or to characterize behavioral properties. In each case, behavior is described in terms of the occurrence and availability of abstract entities called events: these are transactions, or atomic, multi-way synchronizations, between combinations of processes.
Processes may be combined using a number of operators, denoting choice, sequencing, and parallelism. The resulting language has a range of algebraic equivalences, and is...
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Bibliography
Abrial JR (1996) The B-book: assigning programs to meanings. Cambridge University Press, Cambridge
Bird R (1998) An introduction to functional programming using Haskell. Prentice-Hall, Hertfordshire, UK
Brookes SD, Hoare CAR, Roscoe AW (1984) A theory of communicating sequential processes. J ACM 31(3):560–599
Davies J (1993) Specification and proof in real-time CSP. Cambridge University Press, Cambridge
Google (2010) The go programming language. http://golang.org/. Accessed July 2010
Hoare CAR (1978) Communicating sequential processes. Commun ACM 21(8):666–677
Hoare CAR (1985) Communicating sequential processes. Prentice Hall (Available from http://www.usingcsp.com)
Inmos Ltd. (1988) Occam2 reference manual. Prentice Hall
Isobe Y, Roggenbach M (2005) A generic theorem prover of CSP refinement. TACAS 2005, Springer
Jones CB, Roscoe AW (2010) Insight, innovation and collaboration. Reflections on the work of C.A.R. Hoare. Springer, London
Lea D (1996) Concurrent programming in java: design principles and patterns. Addison Wesley, Reading
Leuschel M, Currie A, Massart T (2001) How to make FDR Spin: LTL model checking of CSP by refinement. FME 2001. Springer
Lowe G (1996) Breaking and fixing the Needham-Schroeder public-key protocol using FDR. In: Proceedings of TACAS ’96. Lecture notes in computer science, vol 1055. Springer, Berlin
Lowe G (1977) Casper: a compiler for the analysis of security protocols. Proceedings of CSFW 1997
Reed GM, Roscoe AW (1998) A timed model for communicating sequential processes, Theor Comput Sci 58:249–261
Roscoe AW (1997) The theory and practice of concurrency. Prentice Hall, Hertfordshire, UK
Roscoe AW (2003) On the expressive power of CSP refinement. Form Asp Comput 17(2):93–112
Roscoe AW (2010) CSP is expressive enough for π. In: Reflections on the work of C.A.R. Hoare, Springer, London
Roscoe AW (2010) Understanding concurrent systems. Springer, London
Ryan PYA, Schneider SA, Goldsmith MH, Lowe G, Roscoe AW (2001) The modelling and analysis of security protocols: the CSP approach. Addison-Wesley, Reading
Schneider SA (2000) Concurrent and real-time systems: the CSP approach. Wiley, New York
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer Science+Business Media, LLC
About this entry
Cite this entry
Roscoe, A.W., Davies, J. (2011). CSP (Communicating Sequential Processes). In: Padua, D. (eds) Encyclopedia of Parallel Computing. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-09766-4_186
Download citation
DOI: https://doi.org/10.1007/978-0-387-09766-4_186
Publisher Name: Springer, Boston, MA
Print ISBN: 978-0-387-09765-7
Online ISBN: 978-0-387-09766-4
eBook Packages: Computer ScienceReference Module Computer Science and Engineering