Reversible Computation with Stacks and "Reversible Management of Failures"
Abstract
This work focuses on making certain computational models reversible. We start with the idea that "reversibilizing" should mean a process that gives a computational model an operational semantics capable of interpreting each term as a bijection. The most commonly used method of reversibilization creates operational semantics that halt computation when it is not possible to uniquely determine the starting state from a produced computational state; thus, terms are interpreted as partial bijective functions. We introduce $\textsf{S-CORE}$, a language of terms that allows manipulation of variables and stacks. For $\textsf{S-CORE}$, we define the operational semantics $\textsf{R-semantics}$. With the help of a proof assistant, we certify that $\textsf{R-semantics}$ makes $\textsf{S-CORE}$ a reversible imperative computational model where all terms are interpreted as total bijections on an appropriate state space.
- Publication:
-
arXiv e-prints
- Pub Date:
- January 2025
- DOI:
- arXiv:
- arXiv:2501.05259
- Bibcode:
- 2025arXiv250105259P
- Keywords:
-
- Computer Science - Programming Languages;
- Computer Science - Computational Complexity;
- Computer Science - Logic in Computer Science;
- D.3.1;
- F.3.2
- E-Print:
- 16 pages, 2 figures