通信顺序进程

在计算机科学中,通-{}-信顺序进程(,縮寫為CSP),又譯為交-{}-談循序程式交換訊息的循序程式,是一種形式語言,用來描述並行性系統間進行互動的模式。它是叫做进程代数或进程演算的关于并发的数学理论家族的一员,基于了通过通道的消息传递。CSP高度影響了Occam的設計,也影響了程式語言如Limbo、、Go、 和Clojure的core.async等。

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

历史
在Hoare的1978年论文中提出的CSP版本在本质上不是一种进程演算,而是一种并发编程语言,它有四类命令:并行命令,赋值命令,输入和输出命令,交替(alternation)和重复命令。它有着与后来版本的CSP在实质上不同的语法,不拥有数学上定义的语义,不能体现。最初的CSP程序被写为一组固定数目的顺序进程的并行复合(composition),它们相互之间严格通过同步消息传递来进行通信。与后来版本的CSP相对比,每个进程都被赋予了一个显式的名字,通过指定意图发送或接收的进程的名字,定义消息的来源和目标,没有采用等价的命名的通道方式。例如,定义进程:

COPY = *[c:character; west?c → east!c]

它是重复的从叫作west的进程接收一个字符,再将这个字符发送到叫作east的进程。接着定义逐行读取打孔卡再输出字符串流到叫作X的进程的DISASSEMBLE进程,和从叫作X的进程读取字符串流再逐行打印到行式打印机的ASSEBLE进程。并行复合:
[west::DISASSEMBLE || X::COPY || east::ASSEMBLE]

它赋予名字west至DISASSEMBLE进程,名字X至COPY进程,名字east至ASSEMBLE进程,并发的执行这三个进程,和后来Hoare的1985年出版的书籍《通信顺序进程》,它结合了时序信息用于关于实时系统的推理。

  • Receptive Process Theory,专门化的CSP,假定了异步(就是)发送操作。
  • CSPP
  • HCSP
  • TCOZ,集成有时序的CSP于。
  • Circus,集成CSP和基于的。
  • CML(COMPASS建模语言),合并了为(SoS)开发的Circus,集成了CSP的扩展。
  • ,结合了CSP与特征的国际标准。

参见

  • ,跟踪的一般性理论。

*

  • XC
  • VerilogCSP,向Verilog HDL增加的一组宏,用来支持通信顺序进程通道通信。
  • ,是Brinch Hansen在大约1989年开发的基于CSP原理的编程语言。
  • ,是Brinch Hansen开发的编程语言,受到CSP和他早期创作的Joyce的影响。
  • Ada,实现了CSP特征比如约会。
  • DirectShow,是DirectX内的视频框架,它使用了CSP概念来实现音频和视频过滤器。
  • ,是正式开发的网络为中心分布式RTOS,基于了CSP的务实超集。

*

  • 并行编程模型

延伸阅读
*
** 本书已经被的更新,新版可以于网站Using CSP自由的下载获取为PDF文件。应用了版权限制,下载前参看页面文本。
*
** 一些与本书有关的链接可见于网站。全文可从Bill Roscoe的学术出版列表下载获取为PS或PDF文件。

引用
外部链接

  • [http://www.wotug.org/ WoTUG] , CSP和occam风格系统的用户组,包含了关于CSP和有用链接的一些信息。

评论 (0)

  • 还没有评论,来抢沙发吧。