Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Communicating sequential processes
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Formal model in concurrency theory}} {{distinguish|Constraint satisfaction problem}} In [[computer science]], '''communicating sequential processes''' ('''CSP''') is a [[formal language]] for describing [[pattern]]s of interaction in [[concurrent systems]].<ref name="roscoe">{{cite book |first=A. W. |last=Roscoe |author-link=Bill Roscoe |title=The Theory and Practice of Concurrency |publisher=[[Prentice Hall]] |isbn=978-0-13-674409-2 |date=1997 |url-access=registration |url= http://www.cs.ox.ac.uk/bill.roscoe/publications/68b.pdf}}</ref> It is a member of the family of mathematical theories of concurrency known as process algebras, or [[process calculus|process calculi]], based on [[message passing]] via [[Channel (programming)|channels]]. CSP was highly influential in the design of the [[occam (programming language)|occam]] programming language<ref name="roscoe" /><ref>{{cite book |author=Inmos |author-link=Inmos |url= http://www.wotug.org/occam/documentation/oc21refman.pdf |title=occam 2.1 Reference Manual |publisher=SGS-Thomson Microelectronics Ltd. |date=1995-05-12}}, INMOS document 72 occ 45 03.</ref> and also influenced the design of programming languages such as [[Limbo (programming language)|Limbo]],<ref name="cox">{{cite web |title=Bell Labs and CSP Threads |url= http://swtch.com/~rsc/thread/ |first=Russ |last=Cox |access-date=2010-04-15}}</ref> [[RaftLib]], [[Erlang (programming language)|Erlang]],<ref>{{cite web |title=10 Academic and Historical Questions |url= https://www.erlang.org/faq/academic.html |access-date=2021-11-15}}</ref> [[Go (programming language)|Go]],<ref name="golang">{{cite web |title=FAQ: Why build concurrency on the ideas of CSP? |url= http://golang.org/doc/go_faq.html#csp |work=The Go Programming Language |access-date=2021-10-15}}</ref><ref name="cox"/> [[Crystal (programming language)|Crystal]], and [[Clojure]]'s core.async.<ref name="clojure-core-async">{{cite web |title=Clojure core.async Channels |url= https://clojure.org/news/2013/06/28/clojure-clore-async-channels#_history |first=Rich |last=Hickey |date=2013-06-28 |access-date=2021-10-15}}</ref> CSP was first described by [[Tony Hoare]] in a 1978 article,<ref name="hoare1978">{{cite journal |last=Hoare |first=C. A. R. |author-link=C. A. R. Hoare |title=Communicating sequential processes |journal=[[Communications of the ACM]] |volume=21 |issue=8 |pages=666β677 |date=1978 |doi=10.1145/359576.359585 |s2cid=849342 |doi-access=free}}</ref> and has since evolved substantially.<ref name="25years">{{cite book |last1=Abdallah |first1=Ali E. |last2=Jones |first2=Cliff B. |last3=Sanders |first3=Jeff W. |title=Communicating Sequential Processes: The First 25 Years |series=[[LNCS]] |volume=3525 |publisher=Springer |date=2005 |url= https://www.springer.com/computer/theoretical+computer+science/foundations+of+computations/book/978-3-540-25813-1 |isbn=9783540258131}}</ref> CSP has been practically applied in industry as a tool for [[formal specification|specifying and verifying]] the concurrent aspects of a variety of different systems, such as the T9000 [[Transputer]],<ref name="barrett">{{cite journal |last=Barrett |first=G. |title=Model checking in practice: The T9000 Virtual Channel Processor |journal=IEEE Transactions on Software Engineering |volume=21 |issue=2 |pages=69β78 |date=1995 |doi=10.1109/32.345823}}</ref> as well as a secure [[e-commerce]] system.<ref name="hall">{{cite journal |last1=Hall |first1=A |last2=Chapman |first2=R. |url= http://www.anthonyhall.org/c_by_c_secure_system.pdf |title=Correctness by construction: Developing a commercial secure system |journal=IEEE Software |volume=19 |issue=1 |pages=18β25 |date=2002 |doi=10.1109/52.976937 |citeseerx=10.1.1.16.1811}}</ref> The theory of CSP itself is also still the subject of active research, including work to increase its range of practical applicability (e.g., increasing the scale of the systems that can be tractably analyzed).<ref>{{Cite thesis |last=Creese |first=S. |title=Data Independent Induction: CSP Model Checking of Arbitrary Sized Networks |type=D. Phil. |publisher=[[Oxford University]] |date=2001 |citeseerx=10.1.1.13.7185}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)