A little about computer science and cooking

The goal of this interpreter for the croll-pi calculus is to study its expressiveness from a practical point of view.
The calculus was originally defined by I. Lanese, C. A. Mezzina, A. Schmitt and J-B. Stefani.

Reversibility for Speculative Parallelism

It is possible to use reversibility to achieve speculative parallelism. In the following file, we provide a new implementation of the car repair use-case of [2]. In that scenario, an insurance company needs to help one of its consumer whose car just broke by providing him a rental car, a garage to repair his broken car and a truck to pick it up. In our implementation, several company can provide these services, and we use speculative parallelism to choose the first one that answer with a price in budget. Speculative Parallelism is achieve by rollbacking the pending requests when we got a positive answer.

Reversibility for Computation

Finally, we studied the possibility to use reversibility as a mean for computation, with the implementation of the eight-queen problem in croll-pi, using a standard backtracking algorithm. Here, we use reversibility to achieve backtacking in a concurrent setting. As a result, we provide two implementation of the algorithm: one where each queen in turn look for a valid position; one where every queen are started in parallel.