在米尔纳的Pi微积分中,当多个进程从同一个通道读取时,评估语义是什么?
规则说
!x(a). P | ?x(b) Q ~> P | Q[a/b]
但是像
这样的情况呢 !x(a). P | ?x(b) Q | ?x(c) R
答案 0 :(得分:2)
我知道这个问题有些陈旧,但为了下一个人来寻找答案,我会尝试一个。
答案是:这是不确定的。 Pi演算过程:
?x(b).Q | ?x(c).R
表示“接受x上的输入然后继续作为Q,或接受x上的输入并继续作为R”。两个执行都对此过程有效。您可以考虑与这些过程相关联的带标签的过渡系统 - 它将像您期望的那样进行分支。
正是这种不确定性使得过程演算(如Pi演算和朋友)变得“特殊”,并且与lambda演算之类的东西不同,在这里,你评估事物的顺序并不重要(你会达到相同的结果)。 Pi演算具有精确的互模拟和过渡系统语义等所有这些机制,因此它可以捕捉这些情况并使其适合分析。