English
Related papers

Related papers: Idempotent I/O for safe time travel

200 papers

We introduce a method of reversing the execution of imperative concurrent programs. Given an irreversible program, we describe the process of producing two versions. The first performs forward execution and saves information necessary for…

Programming Languages · Computer Science 2022-05-04 James Hoey , Irek Ulidowski

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…

Programming Languages · Computer Science 2016-08-22 Naoki Nishida , Adrián Palacios , Germán Vidal

When designing an algorithm, one cares about arithmetic/computational complexity, but data movement (I/O) complexity plays an increasingly important role that highly impacts performance and energy consumption. For a given algorithm and a…

Computational Complexity · Computer Science 2024-04-26 Lionel Eyraud-Dubois , Guillaume Iooss , Julien Langou , Fabrice Rastello

One-way functions are used in modern cryto-systems as doortraps because their inverse functions are supposed to be difficult to compute. Nonetheless with the discovery of reversible computation, it seems that one may break a one-way…

Quantum Physics · Physics 2008-02-03 H. F. Chau , H. -K. Lo

To react to unforeseen circumstances or amend abnormal situations in communication-centric systems, programmers are in charge of "undoing" the interactions which led to an undesired state. To assist this task, session-based languages can be…

Programming Languages · Computer Science 2025-01-15 Claudio Antares Mezzina , Francesco Tiezzi , Nobuko Yoshida

As most parallel and distributed programs are internally non-deterministic -- consecutive runs with the same input might result in a different program flow -- vanilla cyclic debugging techniques as such are useless. In order to use cyclic…

Software Engineering · Computer Science 2007-05-23 Michiel Ronsse , Koen De Bosschere , Jacques Chassin de Kergommeaux

Debugging transactions and understanding their execution are of immense importance for developing OLAP applications, to trace causes of errors in production systems, and to audit the operations of a database. However, debugging transactions…

In the past couple of decades, the computational abilities of supercomput- ers have increased tremendously. Leadership scale supercomputers now are capable of petaflops. Likewise, the problem size targeted by applications running on such…

Distributed, Parallel, and Cluster Computing · Computer Science 2011-09-06 Robert Louis Cloud

A reliable technique for deductive program verification should be proven sound with respect to the semantics of the programming language. For each different language, the construction of a separate soundness proof is often a laborious…

Programming Languages · Computer Science 2021-08-05 Ximeng Li , Qianying Zhang , Guohui Wang , Zhiping Shi , Yong Guan

A time machine that sends information back to the past may, in principle, be built using closed time-like curves. However, the realization of a time machine must be congruent with apparent paradoxes that arise from traveling back in time.…

General Relativity and Quantum Cosmology · Physics 2011-01-11 Hwee Kuan Lee

When the inverse of an algorithm is well-defined -- that is, when its output can be deterministically transformed into the input producing it -- we say that the algorithm is invertible. While one can describe an invertible algorithm using a…

Programming Languages · Computer Science 2022-12-07 Joachim Tilsted Kristensen , Robin Kaarsgaard , Michael Kirkedal Thomsen

Input/Output (I/O) logic is a general framework for reasoning about conditional norms and/or causal relations. We streamline Bochman's causal I/O logics via proof-search-oriented sequent calculi. Our calculi establish a natural syntactic…

Logic in Computer Science · Computer Science 2023-06-19 Agata Ciabattoni , Dmitry Rozplokhas

Undoing computations of a concurrent system is beneficial in many situations, e.g., in reversible debugging of multi-threaded programs and in recovery from errors due to optimistic execution in parallel discrete event simulation. A number…

Logic in Computer Science · Computer Science 2024-02-13 Ivan Lanese , Iain Phillips , Irek Ulidowski

Causality serves as an abstract notion of time for concurrent systems. A computation is causal, or simply valid, if each observation of a computation event is preceded by the observation of its causes. The present work establishes that this…

Logic in Computer Science · Computer Science 2026-03-03 Clément Aubert , Jean Krivine

Many programmers have had to deal with an overwritten variable resulting for example from an aliasing problem. The culprit is obviously the last write-access to that memory location before the manifestation of the bug. The usual technique…

Software Engineering · Computer Science 2007-05-23 Kazutaka Maruyama , Minoru Terada

Debugging non-deterministic programs on microcontrollers is notoriously challenging, especially when bugs manifest in unpredictable, input-dependent execution paths. A recent approach, called multiverse debugging, makes it easier to debug…

Programming Languages · Computer Science 2025-09-09 Tom Lauwaerts , Maarten Steevens , Christophe Scholliers

Context: Many systems require receiving data from multiple information sources, which act as distributed network devices that asynchronously send the latest data at their own pace to generalize various kinds of devices and connections,…

Programming Languages · Computer Science 2025-03-03 Tetsuo Kamina , Tomoyuki Aotani , Hidehiko Masuhara

We discuss how to implement backjumping (or intelligent backtracking) in Prolog programs by means of exception handling. This seems impossible in a general case. We provide two solutions. One works for binary programs; in a general case it…

Programming Languages · Computer Science 2022-02-08 Włodzimierz Drabent

Motivated by experience in programming and in the teaching of programming, we make another assault on the longstanding problem of debugging. Having explored why debuggers are not used as widely as one might expect, especially in functional…

Programming Languages · Computer Science 2024-11-04 John Whitington

Reversible computation opens up the possibility of overcoming some of the hardware's current physical limitations. It also offers theoretical insights, as it enriches multiple paradigms and models of computation, and sometimes…

Distributed, Parallel, and Cluster Computing · Computer Science 2020-05-15 Clément Aubert , Ioana Cristescu