In programming models with a reversible semantics, computational steps can be undone. This paper addresses the integration of reversible semantics into process languages for communication-centric systems equipped with behavioral types. In prior work, we introduced a monitors-as-memories approach to seamlessly integrate reversible semantics into a process model in which concurrency is governed by session types (a class of behavioral types), covering binary (two-party) protocols with synchronous communication. The applicability and expressiveness of the binary setting, however, is limited. Here we extend our approach, and use it to define reversible semantics for an expressive process model that accounts for multiparty (n-party) protocols, asynchronous communication, decoupled rollbacks, and abstraction passing. As main result, we prove that our reversible semantics for multiparty protocols is causally-consistent. A key technical ingredient in our developments is an alternative reversible semantics with atomic rollbacks, which is conceptually simple and is shown to characterize decoupled rollbacks.
翻译:在具有可逆的语义学的编程模型中,可以取消计算步骤。本文件处理的是将可逆的语义融入具有行为型的通信中心系统的过程语言。在先前的工作中,我们采用了一种监测器即感应法,将可逆的语义无缝地融入一个过程模式,在这种模式中,共通由会话类型(一种行为类型类别)管理,涵盖双向(两方)协议,并同时进行同步通信。但是,二进制设置的适用性和表现性有限。在这里,我们扩展了我们的方法,并用它来定义一种可逆的语义,用于说明多党(n-n-party)协议的表达式模式、无序通信、分解的滚动和抽象通过。主要结果是,我们证明我们多党协议的可逆性语义是因果异的。我们发展过程中的一个关键技术要素是具有原型回滚动的可变的语义学,在概念上简单,并展示了分解的滚动的反向。