混合隐喻:Actor 作为通道与通道作为 Actor(扩展版)
编程语言
2017-05-11 v3
摘要
基于通道和基于 Actor 的编程语言都在实践中使用,但两者常被混淆。诸如 Go 之类的语言提供匿名进程,这些进程使用缓冲区或会合点(称为通道)进行通信;而诸如 Erlang 之类的语言提供可寻址进程(称为 Actor),每个进程带有单一传入消息队列。缺乏通用表示使得难以推理民间传说中存在的翻译。我们定义了用于类型化异步通道的演算 ,以及用于类型化 Actor 的演算 。我们定义了从 到 以及从 到 的翻译,并证明两者均保持类型与语义。我们展示了我们的方法解释了 Actor 系统中的同步与选择性接收,并讨论了支持守护选择和行为类型的未来扩展。
引用
@article{arxiv.1611.06276,
title = {Mixing Metaphors: Actors as Channels and Channels as Actors (Extended Version)},
author = {Simon Fowler and Sam Lindley and Philip Wadler},
journal= {arXiv preprint arXiv:1611.06276},
year = {2017}
}
备注
Extended version of paper appearing at ECOOP'17