Generation of a reversible semantics for Erlang in Maude - INRIA - Institut National de Recherche en Informatique et en Automatique Accéder directement au contenu
Rapport Année : 2022

Generation of a reversible semantics for Erlang in Maude

Generation de une sémantique reversible pour Erlang en Maude

Résumé

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.
Fichier principal
Vignette du fichier
RR-9468.pdf (692.9 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)

Dates et versions

hal-03630407 , version 1 (05-04-2022)
hal-03630407 , version 2 (06-04-2022)
hal-03630407 , version 3 (02-06-2022)

Identifiants

  • HAL Id : hal-03630407 , version 3

Citer

Giovanni Fabbretti, Ivan Lanese, Jean-Bernard Stefani. Generation of a reversible semantics for Erlang in Maude. [Research Report] RR-9468, Inria - Research Centre Grenoble – Rhône-Alpes. 2022, pp.1-22. ⟨hal-03630407v3⟩
126 Consultations
137 Téléchargements

Partager

Gmail Facebook X LinkedIn More