Reversible CSP Computations





Publicado en

Actas de las XXI Jornadas de Programación y Lenguajes (PROLE 2022)




Original publication metadata Published in: IEEE Transactions on Parallel and Distributed Systems (Volume: 32, Issue: 6, June 1 2021) Date of Publication: 14 January 2021 Pages: 1425 - 1436 (12 pages) DOI: 10.1109/TPDS.2021.3051747 Publisher: IEEE Abstract: 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.


Acerca de Galindo, Carlos

Palabras clave

Causal-consistent Reversibility, Code Inspections And Walkthroughs, Communicating Sequential Processes, Concurrent Programming, Concurrent Specification Languages, Debugging Aids, Strict Reversibility, Synchronization, Tracing
Página completa del ítem
Notificar un error en este resumen
Mostrar cita
Mostrar cita en BibTeX
Descargar cita en BibTeX