Treffer: Generation of a reversible semantics for Erlang in Maude

Title:
Generation of a reversible semantics for Erlang in Maude
Generation de une sémantique reversible pour Erlang en Maude
Contributors:
Sound Programming of Adaptive Dependable Embedded Systems (SPADES), Centre Inria de l'Université Grenoble Alpes, Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National de Recherche en Informatique et en Automatique (Inria)-Laboratoire d'Informatique de Grenoble (LIG), Université Pierre Mendès France - Grenoble 2 (UPMF)-Université Joseph Fourier - Grenoble 1 (UJF)-Institut polytechnique de Grenoble - Grenoble Institute of Technology (Grenoble INP)-Institut National Polytechnique de Grenoble (INPG)-Centre National de la Recherche Scientifique (CNRS)-Université Pierre Mendès France - Grenoble 2 (UPMF)-Université Joseph Fourier - Grenoble 1 (UJF)-Institut polytechnique de Grenoble - Grenoble Institute of Technology (Grenoble INP)-Institut National Polytechnique de Grenoble (INPG)-Centre National de la Recherche Scientifique (CNRS), Foundations of Component-based Ubiquitous Systems (FOCUS), Centre Inria d'Université Côte d'Azur, Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National de Recherche en Informatique et en Automatique (Inria), Alma Mater Studiorum Università di Bologna = University of Bologna (UNIBO), Inria - Research Centre Grenoble – Rhône-Alpes
Source:
[Research Report] RR-9468. :1-22
Publisher Information:
CCSD, 2022.
Publication Year:
2022
Collection:
collection:UGA
collection:CNRS
collection:INRIA
collection:INPG
collection:INRIA-SOPHIA
collection:INRIA-RHA
collection:INRIA-RRRT
collection:LIG
collection:INRIASO
collection:INRIA_TEST
collection:TESTALAIN1
collection:INRIA2
collection:LARA
collection:LIG-MFML-SPADES
collection:UNIV-COTEDAZUR
collection:INRIA-RENGRE
collection:INRIA-300009
collection:LIG_SIDCH
collection:TEST-UGA
Original Identifier:
HAL: hal-03630407
Document Type:
Report report<br />Reports
Language:
English
Rights:
info:eu-repo/semantics/OpenAccess
Accession Number:
edshal.hal.03630407v3
Database:
HAL

Weitere Informationen

In recent years, reversibility in concurrent settings has attracted interest thanks to its diverse applications in areas such as error recovery, debugging, and biological modeling. Also, it has been studied in many formalisms, including Petri nets, process algebras, and programming languages like Erlang. However, most attempts made so far suffer from the same limitation: they define their reversible semantics in an ad-hoc fashion. To address this limit, Lanese et al. have recently proposed a novel general method to derive a concurrent reversible semantics from a non-reversible one. However, in most interesting instances the method relies on infinite sets of reductions, making doubtful its practical usability. We bridge the gap between theory and practice by implementing it in Maude. The key insight is that infinite sets of reductions can be captured by a small number of schemas in many relevant cases. This happens indeed for our application: the functional and concurrent fragment of Erlang. We extend the framework with a general rollback operator, allowing one to undo an action far in the past, including all and only its consequences. We can thus use our framework, e.g., as an oracle against which to test the reversible debugger CauDEr for Erlang, or as an executable specification for new reversible debuggers.
Récemment, la réversibilité dans les systèmes concurrents a été mise à profit dans plusieurs applications tirées de domaines différents comme le débogage, la reprise sur erreurs et la modélisation des systèmes biologiques. La réversibilité a été étudiée dans plusieurs formalismes, comme les réseaux de Petri, les algèbres de processus et différents langages de programmation. Néanmoins, tous les travaux visant à développer une variante réversibles de ces formalismes souffrent de la même limitation: les sémantiques ont toujours été définies de manière ad-hoc. Très récemment, Lanese et al. ont proposé une méthode générale pour définir une sémantique réversible concurrente, de manière automatique, à partir d'une sémantique opérationnelle non réversible. Cette méthode n'avait cependant pas été instrumentée. Le but de ce papier est d'en proposer une implantation, prouvée correcte, dans l'environnement de logique de réécriture Maude, et de l'appliquer à un cas d'étude: le langage de programmation Erlang.