当前位置: X-MOL 学术IEEE Trans. Parallel Distrib. Syst. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Reversible CSP Computations
IEEE Transactions on Parallel and Distributed Systems ( IF 5.6 ) Pub Date : 2021-01-14 , DOI: 10.1109/tpds.2021.3051747
Carlos Santiago Galindojimenez , Naoki Nishida , Josep Silva , Salvador Tamarit

Reversibility enables a program to be executed both forwards and backwards. This ability allows programmers to backtrack the execution to a previous state. This is essential if the computation is not deterministic because re-running the program forwards may not lead to that state of interest. Reversibility of sequential programs has been well studied and a strong theoretical basis exists. Contrarily, reversibility of concurrent programs is still very young, especially in the practical side. For instance, in the particular case of the Communicating Sequential Processes (CSP) language, reversibility is practically missing. In this article, we present a new technique, including its formal definition and its implementation, to reverse CSP computations. Most of the ideas presented can be directly applied to other concurrent specification languages such as Promela or CCS, but we center the discussion and the implementation on CSP. The technique proposes different forms of reversibility, including strict reversibility and causal-consistent reversibility. On the practical side, we provide an implementation of a system to reverse CSP computations that is able to highlight the source code that is being executed in each forwards/backwards computation step, and that has been optimized to be scalable to real systems.

中文翻译:

可逆CSP计算

可逆性使程序可以向前和向后执行。此功能使程序员可以将执行回溯到先前的状态。如果计算不是确定性的,则这是必不可少的,因为向前重新运行程序可能不会导致该状态。对顺序程序的可逆性进行了充分的研究,并具有强大的理论基础。相反,并发程序的可逆性还很年轻,特别是在实践方面。例如,在通信顺序过程(CSP)语言的特定情况下,实际上缺乏可逆性。在本文中,我们提出了一种新技术,包括其正式定义和实现,它可以逆转CSP计算。提出的大多数想法都可以直接应用于其他并发的规范语言,例如Promela或CCS,但是我们将讨论和实现的重点放在CSP上。该技术提出了不同形式的可逆性,包括严格的可逆性和因果一致的可逆性。在实践方面,我们提供了一个反向CSP计算系统的实现,该系统能够突出显示在每个前进/后退计算步骤中正在执行的源代码,并且已经过优化以可扩展到实际系统。
更新日期:2021-02-02
down
wechat
bug