Skip to main content

CSP (Communicating Sequential Processes)

  • Reference work entry
Encyclopedia of Parallel Computing

Synonyms

Communicating sequential processes (CSP)

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

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 1,600.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 1,799.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Bibliography

  1. Abrial JR (1996) The B-book: assigning programs to meanings. Cambridge University Press, Cambridge

    Book  MATH  Google Scholar 

  2. Bird R (1998) An introduction to functional programming using Haskell. Prentice-Hall, Hertfordshire, UK

    Google Scholar 

  3. Brookes SD, Hoare CAR, Roscoe AW (1984) A theory of communicating sequential processes. J ACM 31(3):560–599

    Article  MATH  MathSciNet  Google Scholar 

  4. Davies J (1993) Specification and proof in real-time CSP. Cambridge University Press, Cambridge

    Book  MATH  Google Scholar 

  5. Google (2010) The go programming language. http://golang.org/. Accessed July 2010

  6. Hoare CAR (1978) Communicating sequential processes. Commun ACM 21(8):666–677

    Article  MATH  MathSciNet  Google Scholar 

  7. Hoare CAR (1985) Communicating sequential processes. Prentice Hall (Available from http://www.usingcsp.com)

  8. Inmos Ltd. (1988) Occam2 reference manual. Prentice Hall

    Google Scholar 

  9. Isobe Y, Roggenbach M (2005) A generic theorem prover of CSP refinement. TACAS 2005, Springer

    Google Scholar 

  10. Jones CB, Roscoe AW (2010) Insight, innovation and collaboration. Reflections on the work of C.A.R. Hoare. Springer, London

    Google Scholar 

  11. Lea D (1996) Concurrent programming in java: design principles and patterns. Addison Wesley, Reading

    Google Scholar 

  12. Leuschel M, Currie A, Massart T (2001) How to make FDR Spin: LTL model checking of CSP by refinement. FME 2001. Springer

    Google Scholar 

  13. 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

    Google Scholar 

  14. Lowe G (1977) Casper: a compiler for the analysis of security protocols. Proceedings of CSFW 1997

    Google Scholar 

  15. Reed GM, Roscoe AW (1998) A timed model for communicating sequential processes, Theor Comput Sci 58:249–261

    Article  MathSciNet  Google Scholar 

  16. Roscoe AW (1997) The theory and practice of concurrency. Prentice Hall, Hertfordshire, UK

    Google Scholar 

  17. Roscoe AW (2003) On the expressive power of CSP refinement. Form Asp Comput 17(2):93–112

    Article  Google Scholar 

  18. Roscoe AW (2010) CSP is expressive enough for π. In: Reflections on the work of C.A.R. Hoare, Springer, London

    Chapter  Google Scholar 

  19. Roscoe AW (2010) Understanding concurrent systems. Springer, London

    MATH  Google Scholar 

  20. Ryan PYA, Schneider SA, Goldsmith MH, Lowe G, Roscoe AW (2001) The modelling and analysis of security protocols: the CSP approach. Addison-Wesley, Reading

    Google Scholar 

  21. Schneider SA (2000) Concurrent and real-time systems: the CSP approach. Wiley, New York

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics