|||
对Pi演算书中问题的解释(2)
网友的问题:郝克刚老师,您好,我在看您推荐的书中第81面中的第1个图中感到有点疑惑。根据定义 S=new c(A|C)|B 我认为或者图中的B与C之间少了一条连线,或者A与B中间多了一条连线。(当然我更加倾向于B与C之间少了一条连线,因为两个独立的毫无交互的系统是没有意义的。)
问题的解释:
看来你阅读得很仔细。不过我认为整本书,有的地方需要非常认真,一个字一个字地读,每句话都要认真推敲、琢磨直到完全理解为止。这就是概念的定义和定理的推理和证明部分。而对于书中有些非形式的说明部分,有些公式和有些图例不是严格的陈述,只是一种示意。这时就只能尽量去理解作者要说明的主要问题,而不必对一些次要的地方做苛刻的要求。
你提到的这些公式和图例都是示意性的,是为了说明对进程的增殖和消亡功能的描述。
如果你要严格推敲的话,我也可以发表一些意见。
1, 从不完全的表达式,推导不出相应的流程图来。S=new c(A|C)|B中没有说明ABC的细节,从而B与C之间或者A与B之间是否有通信连接全然不知。即各种情况都有可能,不能算错。
2, 既然书中说A和B分别通过端口a和b同外部通信,如果a和b不相同,则显然A和B之间就没有通信连接,于是A和B之间就没有连线。但是在Pi演算中端口名是可以改变的,说不定什么时候a和b相等了,A和B之间就有通信连接,于是A和B之间就可以有连线。由于这里还没有讲Pi演算中端口名是可以改变的内容,所以我倒是倾向于A和B之间不画连线为好,或者把前面那句话加个‘等’字,改为“A和B分别通过a和b等 端口与外部世界通信”。
3, 至于B与C之间是否有通信,在表达式中未说明,那就不能肯定,可能有,也可能没有。你说因为“两个独立的毫无交互的系统是没有意义的”所以就必需有通信连接,这显然也说不过去,例如甲、乙、丙三个独立系统,甲和乙有通信连接,乙和丙有通信连接,如果甲和丙没有通信连接就没有意义了吗。
4, 另外,从上述表达式也推不出A和C之间一定有通信连接。因为new c(A|C) 只是说A和C中含有的c不同于其他进程中的的c,并不保证A和C中都含有的c,很可能A中根本就不含c,而也许是C=C1 | C2,在C1 , C2中含有的c,这样A和C之间也画不成线。当然这不是作者的意图,只是说从不完全的表达式,推导不出相应的流程图来。
5, 既然从不完全的表达式,推导不出相应的流程图来。那么实际上就是说作者同时用两种手段:表达式和流程图一起共同来描述他举的例子。既然图中A与B中间有画线,那就是他们之间有通信连接。既然在图1、图2和图3中,B与C之间没有画线,就说明B与C之间没有通信连接。直到图4才画出B与C之间的连线,让B与C之间建立通信连接。如何建立这种链接才引出后面讲的Pi演算来。
郝克刚 2011.11.9.
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-26 16:29
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社