Reversible debuggers help programmers to find the causes of misbehaviours in concurrent programs more quickly, by executing a program backwards from the point where a misbehaviour was observed, and looking for the bug(s) that caused it. Reversible debuggers can be founded on the well-studied theory of causal-consistent reversibility, which only allows one to undo an action provided that its consequences, if any, are undone beforehand. Causal-consistent reversibility yields more efficient debugging by reducing the number of states to be explored when looking backwards. Till now, causal-consistent reversibility has never considered time, which is a key aspect in real-world applications. Here, we study the interplay between reversibility and time in concurrent systems via a process algebra. The Temporal Process Language (TPL) by Hennessy and Regan is a well-understood extension of CCS with discrete-time and a timeout operator. We define revTPL, a reversible extension of TPL, and we show that it satisfies the properties expected from a causal-consistent reversible calculus. We show that, alternatively, revTPL can be interpreted as an extension of reversible CCS with time.
翻译:可逆调试器帮助程序员更快速地发现并发程序中的异常行为原因,其原理是从观察到异常行为的位置开始逆向执行程序,并寻找导致该异常的缺陷。可逆调试器可基于已得到充分研究的因果一致性可逆理论构建,该理论只允许在撤销某个动作时,确保其可能产生的后果已被事先撤销。因果一致性可逆通过减少逆向查找时需要探索的状态数量,实现了更高效的调试。迄今为止,因果一致性可逆从未考虑过时间这一现实应用中的关键要素。本文通过进程代数研究并发系统中可逆性与时间之间的相互作用。Hennessy和Regan提出的时间进程语言(TPL)是CCS在离散时间和超时算子方面的成熟扩展。我们定义了revTPL(TPL的可逆扩展),并证明它满足因果一致性可逆演算的预期性质。此外,我们展示了revTPL也可以被解释为带时间约束的可逆CCS的扩展。