通信顺序进程 

计算机科学中,通信顺序进程(英語:Communicating sequential processes,縮寫為CSP),又譯為交談循序程式交換訊息的循序程式,是一種形式語言,用來描述並行性系統間進行互動的模式[1]。它是叫做进程代数或进程演算的关于并发的数学理论家族的一员,基于了通过通道消息传递。CSP高度影響了Occam的設計[1][2],也影響了程式語言如Limbo[3]RaftLib英语RaftLibGo[4]Crystal英语Crystal (programming language)Clojure的core.async[5]等。

CSP最早出現於東尼·霍爾在1978年發表的論文[6],但在之後又經過一系列的改善[7]。CSP已经实际的应用在工业之中,作为一种工具去规定和验证英语Formal specification各种不同系统的并发状况,比如T9000 Transputer[8],还有安全电子商务系统[9]。CSP的理论自身仍是活跃研究的主题,包括了增加它的实际可应用性的范围(比如增大可以跟踪分析的系统的规模)[10]

  1. ^ 1.0 1.1 Roscoe, A. W. The Theory and Practice of Concurrency. Prentice Hall. 1997. ISBN 978-0-13-674409-2. 
  2. ^ INMOS. occam 2.1 Reference Manual (PDF). SGS-THOMSON Microelectronics Ltd. 1995-05-12 [2020-05-03]. (原始内容存档 (PDF)于2020-08-01). , INMOS document 72 occ 45 03
  3. ^ Resources about threaded programming in the Bell Labs CSP style. [2010-04-15]. (原始内容存档于2013-04-26). 
  4. ^ Language Design FAQ: Why build concurrency on the ideas of CSP?. [2020-05-03]. (原始内容存档于2013-01-02). 
  5. ^ Clojure core.async Channels. [2020-05-03]. (原始内容存档于2019-07-05). 
  6. ^ Hoare, C. A. R. Communicating sequential processes (PDF). Communications of the ACM. 1978, 21 (8): 666–677 [2020-05-03]. doi:10.1145/359576.359585. (原始内容存档 (PDF)于2020-12-30). 
  7. ^ Abdallah, Ali E.; Jones, Cliff B.; Sanders, Jeff W. Communicating Sequential Processes: The First 25 Years. LNCS 3525. Springer. 2005. ISBN 9783540258131. 
  8. ^ Barrett, G. Model checking in practice: The T9000 Virtual Channel Processor. IEEE Transactions on Software Engineering. 1995, 21 (2): 69–78. doi:10.1109/32.345823. 
  9. ^ Hall, A; Chapman, R. Correctness by construction: Developing a commercial secure system (PDF). IEEE Software. 2002, 19 (1): 18–25 [2020-05-03]. doi:10.1109/52.976937. (原始内容存档 (PDF)于2020-12-02). 
  10. ^ Creese, S. Data Independent Induction: CSP Model Checking of Arbitrary Sized Networks. D. Phil. Oxford University. 2001. 



取材自維基百科 - 中文時事百科