NPL语言的操作语义与表达能力解析
1. NPL的操作LTS语义
NPL(某种进程代数语言)的操作LTS(标记迁移系统)语义包含具体和抽象两种。具体LTS语义可通过规则推导进程的迁移,例如对于进程 $(C|E)|(E |F)$ ,其同步过程可依据规则逐步推导:
- 已知 $C \stackrel{(a,{D})}\longrightarrow 0$ ,根据规则 $(Par)$ 可得 $C|E \stackrel{(a,{D})}\longrightarrow 0|E$ ,进一步 $(C|E)|E \stackrel{(a,{D})}\longrightarrow (0|E)|E$ 。
- 若 $F \stackrel{(a,\varnothing)}\longrightarrow 0$ ,结合规则 $(S - Com)$ 和 $(Cong)$ ,有 $(C|E)|(E |F) \equiv ((C|E)|E)|F \stackrel{(\tau,{D})}\longrightarrow ((0|E)|E)|0 \equiv (0|E)|(E |0)$ 。
抽象LTS语义由 $C_{NPL}^a = (P_{NPL},A, \stackrel{}{\Longrightarrow})$ 给出,其中抽象标签集 $A = {\tau} \cup L \cup L^+$ ,迁移关系 $\stackrel{}{\Longrightarrow}$ 由规则 $(Abs)$ 生成。该规则规定,具体LTS中可测试常量的空转迁移(因公理 $(Cons1)$ )不导入抽象LTS,其他迁移则导入但忽略集合 $I$ 。抽象LTS适用于观察孤立运行的固定进程,此时标签中的可测试常量名可安全抽象掉。
超级会员免费看
订阅专栏 解锁全文
832

被折叠的 条评论
为什么被折叠?



