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...
Saved in:
Published in | Journal of logical and algebraic methods in programming Vol. 100; pp. 71 - 97 |
---|---|
Main Authors | , , , |
Format | Journal Article |
Language | English |
Published |
Elsevier Inc
01.11.2018
Elsevier |
Subjects | |
Online Access | Get full text |
Cover
Loading…
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 |