Interleaving classical and reversible

02/18/2021
by   Armando B. Matos, et al.
0

Given a simple recursive function, we show how to extract two interacting processes from it. The two processes can be described by means of iterative programs, one of which is intrinsically reversible, in a language that, up to minor details, belongs to the core of widely used imperative programming languages. We implement the two processes as interleaving synchronous JAVA threads whose interaction is equivalent to the recursive function they are extracted from.

READ FULL TEXT

page 3

page 6

page 8

page 12

page 14

research
05/11/2021

Splitting recursion schemes into reversible and classical interacting threads

Given a simple recursive function, we show how to extract from it a reve...
research
02/14/2019

Introducing Yet Another REversible Language

Yarel is a core reversible programming language that implements a class ...
research
10/11/2021

Symmetries in Reversible Programming: From Symmetric Rig Groupoids to Reversible Programming Languages

The Π family of reversible programming languages for boolean circuits is...
research
02/21/2021

Patterns of Cognition: Cognitive Algorithms as Galois Connections Fulfilled by Chronomorphisms On Probabilistically Typed Metagraphs

It is argued that a broad class of AGI-relevant algorithms can be expres...
research
10/23/2019

Analyzing Trade-offs in Reversible Linear and Binary Search Algorithms

Reversible algorithms are algorithms in which each step represents a par...
research
02/20/2023

Tail recursion transformation for invertible functions

Tail recursive functions allow for a wider range of optimisations than g...
research
10/27/2009

Temporal Debugging using URDB

A new style of temporal debugging is proposed. The new URDB debugger can...

Please sign up or login with your details

Forgot password? Click here to reset