A theory of reversibility for Erlang

[EN] 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 co...

Descripción completa

Detalles Bibliográficos
Autores: Lanese, Ivan, Nishida, Naoki, Palacios, Adrián, Vidal, Germán|||0000-0002-1857-6951
Tipo de recurso: artículo
Fecha de publicación:2018
País:España
Institución:Universitat Politècnica de València (UPV)
Repositorio:RiuNet. Repositorio Institucional de la Universitat Politécnica de Valéncia
Idioma:inglés
OAI Identifier:oai:riunet.upv.es:10251/145737
Acceso en línea:https://riunet.upv.es/handle/10251/145737
Access Level:acceso abierto
Palabra clave:Reversible computation
Actor model
Concurrency
Rollback recovery
LENGUAJES Y SISTEMAS INFORMATICOS
Descripción
Sumario:[EN] 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. (C) 2018 Elsevier Inc. All rights reserved.