会话余代数:会话类型与通信协议的余代数视角
1. 引言
通信协议在人类与计算机的交互中至关重要,但不同的科学社区对协议的描述方式各不相同,有的使用文本描述,有的使用图表,还有的使用类型。这种差异既带来了不同的见解和技术,也阻碍了这些见解和技术的交流。本文旨在提供一种新的协议视角,以建立不同社区之间的联系,并为通信协议的本质提供新的见解。
软件系统通常由并发的、相互交互的进程组成,这些进程通过通道传递消息。协议则是对通道上可能的消息交换的描述,而不涉及使用这些通道的进程的具体结构。由于消息交换需要按一定顺序进行,因此协议可以被看作是基于状态的通信行为抽象。余代数提供了一种对基于状态的行为的抽象,因此可以将协议的状态建模为余代数的状态,让余代数来管理协议在每个状态下可能发生的交换。
会话类型是一种广泛研究的行为类型系统,它通过将通信协议抽象为类型,静态地检查程序是否按照特定协议与通道进行交互。然而,传统的会话类型方法依赖于特定的协议和进程表示。本文提出的余代数视角可以提供一种无语法的会话并发描述,重新发现类型等价、对偶性和子类型关系的共归纳表示,并推导出一个可判定的带子类型的类型系统,用于π - 演算进程。
2. 余代数视角下的会话类型示例
- 简单会话类型示例 :考虑会话类型 (S =?int. !bool. end),它指定了通道一端的协议,即先接收一个整数,然后输出一个布尔值,最后终止交互。这个协议有三个不同的状态:输入状态、输出状态和最终状态。通道的另一端需要使用对偶协议 (!int. ?bool. end)。会话类型系统确保 (S) 的状态按指定顺序启用,并且两个通道端点实现对偶协议
超级会员免费看
订阅专栏 解锁全文
1265

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



