分布式语言与环境演算:类型系统与翻译探索
1. 分布式语言概述
分布式语言的计算模型是存在一组无结构的命名网络节点,每个节点托管着一组命名通信通道和匿名线程。这与π演算的各种分布式变体的计算模型类似。在这种语言中,通信基于命名通信通道,而非直接的代理到代理通信。我们主要关注语言中用于移动性、同步和通信的构造,省略了数据处理和控制流的标准构造,不过这些可以很容易地添加。
以下是一个简单的程序示例:
node a [channel ac | thread[ac⟨b, bc⟩]] | node b [channel bc] |
node c [thread[go a.ac(x:Node, y:Ch[Node]).go x.y⟨a⟩]
这个程序描述了一个由三个网络节点(a、b 和 c)组成的网络。节点 a 托管一个通道 ac 和一个线程,该线程在通道 ac 上发送对 ⟨b, bc⟩。节点 b 托管一个通道 bc。节点 c 托管一个线程,该线程首先移动到节点 a,等待通道 ac 上的消息,接收到消息后迁移到节点 b,并在通道 bc 上发送消息 a。
通信通道上的消息被分配类型,类型由 Ty 表示。Node 类型是网络节点名称的类型,Ch[Ty1, …, Tyk] 类型是多态通信通道的类型,在该通道上通信的消息是 k 元组,其组件的类型为 Ty1, …, Tyk。在上述示例中,通道 ac 的类型为 Ch[Node, Ch[Node]],通道 bc 的类型为 Ch[Node]。
2. 分布式语言的形式语法
分布式语言的形式语法
超级会员免费看
订阅专栏 解锁全文
17

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



