A Reversible Semantics for Janus

📅 2026-02-18
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
This work addresses a fundamental limitation in the original small-step semantics of the high-level reversible language Janus: during forward execution, it discards information essential for reversibility, thereby violating core properties such as the Loop Lemma and hindering debugging and concurrent extensions. To resolve this, the paper presents the first program counter–based reversible small-step operational semantics for Janus. This novel semantics preserves behavioral equivalence with the original while rigorously guaranteeing that every computational step is invertible. The authors formally establish both semantic equivalence and the validity of the Loop Lemma, overcoming the non-trivial challenge of integrating a program counter into reversible semantics. This result provides a solid theoretical foundation for developing debugging mechanisms and concurrency models in reversible programming languages.

Technology Category

Application Category

📝 Abstract
Janus is a paradigmatic example of reversible programming language. Indeed, Janus programs can be executed backwards as well as forwards. However, its small-step semantics (useful, e.g., for debugging or as a basis for extensions with concurrency primitives) is not reversible, since it loses information while computing forwards. E.g., it does not satisfy the Loop Lemma, stating that any reduction has an inverse, a main property of reversibility in process calculi, where small-step semantics is commonly used. We present here a novel small-step semantics which is actually reversible, while remaining equivalent to the previous one. It involves the non-trivial challenge of defining a semantics based on a "program counter" for a high-level programming language.
Problem

Research questions and friction points this paper is trying to address.

reversible programming
small-step semantics
Janus
Loop Lemma
program counter
Innovation

Methods, ideas, or system contributions that make the work stand out.

reversible semantics
small-step semantics
Janus
Loop Lemma
program counter
🔎 Similar Papers
No similar papers found.
Ivan Lanese
Ivan Lanese
University of Bologna
TheoryProgrammingSoftware Engineering
G
Germán Vidal
VRAIN, Universitat Politècnica de València, Valencia, Spain