A Theory of Reversibility for Erlang

06/19/2018
by   Ivan Lanese, et al.
0

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 verification, 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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/20/2021

Join inverse rig categories for reversible functional programming, and beyond

Reversible computing is a computational paradigm in which computations a...
research
09/13/2023

CRIL: A Concurrent Reversible Intermediate Language

We present a reversible intermediate language with concurrency for trans...
research
10/08/2017

Reversible Computation in Term Rewriting

Essentially, in a reversible programming language, for each forward comp...
research
11/02/2022

Verified Reversible Programming for Verified Lossless Compression

Lossless compression implementations typically contain two programs, an ...
research
10/11/2021

Symmetries in Reversible Programming: From Symmetric Rig Groupoids to Reversible Programming Languages

The Π family of reversible programming languages for boolean circuits is...
research
09/06/2022

Jeopardy: An Invertible Functional Programming Language

Algorithms are ways of mapping problems to solutions. An algorithm is in...
research
10/25/2021

Causal Consistent Replication in Reversible Concurrent Calculi

Reversible computation is key in developing new, energy-efficient paradi...

Please sign up or login with your details

Forgot password? Click here to reset