2

我在学习 OCCAM 和 CSP(通信顺序过程)时看到了一个问题。我找到了一些基本答案,例如;

  • 它们都用于并行编程,
  • 他们得到带有问号(?)的输入,
  • 发送带有感叹号(!)的输出。

但我想了解更多关于它们共同特征的技术细节。

4

1 回答 1

1

在 CSP 上

Hoare 的 CSP 于 1979 年至 1984 年间完成,当时他的关于 CSP 的书(今天大约有 260 多页)于 1985 年首次出版。

CSP 的最终版本还包括允许进程间通信和同步机制的通道。

occam

David May 与 Hoare 在牛津的团队一起开发了 CSP 的发展,这是一种与InMOS非常创新和非常先进的TRANSPUTERoccam处理器网络紧密结合的语言,故意将 CSP 融入实用的编程语言中。

occam当代语言可能源于语言概念的非“平行”高级特征。

一个有趣的示例代码 (C) 2000,Fred Barnes 和来自 Peter Welch 的一些修复/修改说明了语言/CSP 通道概念在酒吧模拟器玩具示例中的强大功能,提供啤酒,同时保持代码的可读性和表现力。

-- ...(cleared for clarity >>> http://frmb.org/download/bar.occ )
-- ..
-- .
--{{{
PROC        bar.tender ( []CHAN OF BYTE  req, rsp,
                           CHAN OF INT   mode.change,
                           CHAN OF O.REQ d.chan,
                           SEMAPHORE     d.sem,
                           CHAN OF BOOL  kill
                           )
  CHAN OF BYTE spinal.chord:
  CHAN OF BOOL kill.brain, kill.body:

  PAR
    --{{{  terminator SEQ, BUT DECLARED TO RUN IN TRUE-PARALLEL EXEC WITH bar.brain() & bar.body()
    BOOL any:
    SEQ                   -- SEQ:
      kill ? any
      kill.brain ! any    -- order is
      kill.body ! any     -- important
    --}}}
    bar.brain ( req, spinal.chord, mode.change, kill.brain )
    bar.body  ( spinal.chord, rsp, d.chan, d.sem, kill.body )
:
--}}}

在下一波浪潮中,CSP 和 Occam 相互影响(例如,在《奥卡姆编程法则》(约 90 页,扫描版)中),触及分布式实时处理等高级主题和许多其他感兴趣的高级领域。

于 2016-12-30T14:18:26.593 回答