Interleaving classical and reversible
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