进程图类型系统的生成与应用
1. 进程图基础
进程图是一种用于描述进程和消息交互的结构,在异步计算中,它以分层超图的形式呈现。其中,边代表进程或消息,节点代表端口,“端口”和“节点”这两个术语可互换使用。
- 进程图的定义 :进程图 (P) 是一个超图,其边类型 (Z = {proc, mess})。边 (z_P(e) = proc) 被称为进程,边 (z_P(e) = mess) 被称为消息。进程可标记为 (!Q)(复制)或 (\lambda(n)_k.Q)(进程在其第 (k) 个端口接收一个带有 (n + 1) 个端口的消息,然后表现得像 (Q)),消息的元数至少为 1,且可以不标记或用虚拟标记。
- 消息发送规则 :根据定义,消息被发送到其最后一个端口,即若 (z_P(e) = mess),则 (send_P(e) := ⌊s_P(e)⌋_{ar(e)})。
- 图形表示 :消息用虚线绘制,以区别于进程。
2. 进程图的归约
进程图中最重要的归约形式是进程接收消息,这意味着用进程内部的超图替换由进程和消息组成的可归约表达式(redex)。
- 可归约表达式(Redex) :设 (P_1 := proc_m(l)),(P_2 := mess_{n + 1}),且 (1 ≤ k ≤ m)。定义 (\zeta_1 : m → m + n) 为 (\zeta_1(\chi_m) := ⌊\chi_{m + n}⌋ <