occam和csp的共同特点是什么?
What are the common characteristics in occam and csp?
我在学习OCCAM和CSP(Communicating Sequential Processes)的时候看到一道题。我找到了一些基本答案,例如;
- 它们都用于并行编程,
- 他们得到带问号 (?) 的输入,
- 发送带有感叹号 (!) 的输出。
但我想了解有关它们共同特征的更多技术细节。
在 CSP 上
Hoare 的 CSP 在 1979 ~ 1984 年间完成,而他的 Book on CSP ( today having some 260+ pages ) 于 1985 年首次发表。
CSP 的这个最终版本还包括允许进程到进程通信和同步机制的通道。
在 occam
David May 与 Hoare 在牛津的团队一起开发了 occam
,一种与 紧密结合的语言InMOS 非常创新和非常先进的 TRANSPUTER 处理器网络,故意将 CSP 融入实用的编程语言。
现代语言可能源自 occam
语言概念的 "paralleled" 高级特征。
一个有趣的示例代码 (C) 2000,Fred Barnes 和 Peter Welch 的一些 fixes/mods 在酒吧模拟器的玩具示例上说明了 language/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 相互影响(例如在 The Laws of Occam Programming ( ~90 pages, scanned copy ) ), touching as advanced topics as distributed real-time processing and many other advanced fields of interest.
我在学习OCCAM和CSP(Communicating Sequential Processes)的时候看到一道题。我找到了一些基本答案,例如;
- 它们都用于并行编程,
- 他们得到带问号 (?) 的输入,
- 发送带有感叹号 (!) 的输出。
但我想了解有关它们共同特征的更多技术细节。
在 CSP 上
Hoare 的 CSP 在 1979 ~ 1984 年间完成,而他的 Book on CSP ( today having some 260+ pages ) 于 1985 年首次发表。
CSP 的这个最终版本还包括允许进程到进程通信和同步机制的通道。
在 occam
David May 与 Hoare 在牛津的团队一起开发了 occam
,一种与 紧密结合的语言InMOS 非常创新和非常先进的 TRANSPUTER 处理器网络,故意将 CSP 融入实用的编程语言。
现代语言可能源自 occam
语言概念的 "paralleled" 高级特征。
一个有趣的示例代码 (C) 2000,Fred Barnes 和 Peter Welch 的一些 fixes/mods 在酒吧模拟器的玩具示例上说明了 language/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 相互影响(例如在 The Laws of Occam Programming ( ~90 pages, scanned copy ) ), touching as advanced topics as distributed real-time processing and many other advanced fields of interest.