A theory of reversibility for Erlang

In a reversible language, any forward computation can be undone by a finite sequence of backward steps. Reversible computing has been studied in the context of different programming languages and formalisms, where it has been used for testing and verifica- tion, among others. In this paper, we consi...

Full description

Saved in:
Bibliographic Details
Published inJournal of logical and algebraic methods in programming Vol. 100; pp. 71 - 97
Main Authors Lanese, Ivan, Nishida, Naoki, Palacios, Adrián, Vidal, Germán
Format Journal Article
LanguageEnglish
Published Elsevier Inc 01.11.2018
Elsevier
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:In a reversible language, any forward computation can be undone by a finite sequence of backward steps. Reversible computing has been studied in the context of different programming languages and formalisms, where it has been used for testing and verifica- tion, among others. In this paper, we consider a subset of Erlang, a functional and concurrent programming language based on the actor model. We present a formal semantics for reversible computation in this language and prove its main properties, including its causal consistency. We also build on top of it a rollback operator that can be used to undo the actions of a process up to a given checkpoint.
ISSN:2352-2208
DOI:10.1016/j.jlamp.2018.06.004