We introduce a dialect of the Asynchronous pi-calculus, called AWpi, in which (1) an input name may be owned, at any time, by at most one process; (2) each name has either only the input or only the output capability. As a result, special processes called wires (aka forwarders, that is, processes that receive values at one name and re-transmit) behave as substitutions when composed with any AWpi process. Thus AWpi naturally yields a category, whose morphisms are AWpi processes (modulo the reference behavioural equivalence, barbed congruence) and whose objects are types; and where wires act as identity morphisms. We show that the category of processes can be further organised into (sub)categories with the structures needed for the interpretation of common higher-order language features in the literature by drawing on insights from game semantics; notably, we construct a relative Seely category, the categorical structure that concurrent game semantics has. At the same time, AWpi follows the tradition of ordinary pi-calculi in that expressiveness is preserved and the operational and algebraic theory are developed in a similar manner, notwithstanding substantial technical differences in their development and proofs. In short, the goal of AWpi is to remain faithful to the operational and algebraic tradition of the pi-calculi while connecting to the tradition of denotational models for programming languages.
翻译:我们引入了一种异步 Pi-演算的变体,称为 AWpi,其中:(1) 任何时刻,输入名称最多只能被一个进程拥有;(2) 每个名称仅具有输入或输出能力之一。因此,名为“导线”(即转发器,指在一个名称接收值并重新传输的进程)的特殊进程在与任意 AWpi 进程组合时,表现为替换操作。由此,AWpi 自然地构成一个范畴,其态射为 AWpi 进程(模参考行为等价关系——有界同余),对象为类型,而导线充当恒等态射。我们证明,通过借鉴博弈语义的洞见,该进程范畴可进一步组织为具有特定结构的(子)范畴,以解释文献中常见的高阶语言特征;尤其地,我们构建了相对 Seely 范畴——这正是并发博弈语义所需的范畴结构。与此同时,AWpi 继承了普通 Pi-演算的传统:尽管其在发展与证明中存在显著技术差异,但表达能力得以保持,操作与代数理论以相似方式发展。简言之,AWpi 的目标是既忠实于 Pi-演算的操作与代数传统,又连接编程语言指称模型的传统。