会话类型编码:从理论到实践
在编程的世界里,会话类型的编码是一个重要的研究领域,它涉及到将会话类型转换为线性通道类型和变体类型,以及将会话进程转换为标准 π - 演算进程。下面我们将深入探讨这个过程。
1. 类型编码
类型编码是整个编码过程的基础。在类型编码中,我们使用了限定符 lin 和 un 。线性预类型表示标准会话类型,而无限制的预类型大致与标准 π - 通道相关联,这些通道可以在不同线程中多次使用,并且具有结构化和描述通信的额外特性。
我们对以下语法产生的类型进行编码:
T ::= Bool | end | linp
对于布尔类型等基础类型,其编码是恒等函数,例如:
⟨Bool⟩ ≜ Bool (E - Bool)
⟨Int⟩ ≜ Int (E - Int)
⟨String⟩ ≜ String (E - String)
⟨Unit⟩ ≜ Unit (E - Unit)
会话类型到标准 π - 类型的编码规则如下:
| 规则 | 描述 |
| — | — |
| (E - End) | 终止通信通道的编码为 ∅[],即没有通信能力的通道。 |
| (E - Out) | !T.U 的编码是一个线性输出类型,携带一个类型为 ⟨T⟩ 和类型为 ⟨U 的对偶⟩ 的值对。 |
| (E - Inp) | ?T.U 的
超级会员免费看
订阅专栏 解锁全文
168万+

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



