@incollection{eprints2494, year = {2013}, series = {Lecture Notes in Computer Science}, number = {7792}, note = {22nd European Symposium on Programming, ESOP 2013, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2013, Rome, Italy, March 16-24, 2013. Proceedings}, booktitle = {Programming Languages and Systems}, author = {Ivan Lanese and Michael Lienhardt and Claudio Antares Mezzina and Alan Schmitt and Jean-Bernard Stefani}, pages = {370--390}, publisher = {Springer}, title = {Concurrent flexible reversibility}, abstract = {Concurrent reversibility has been studied in different areas, such as biological or dependable distributed systems. However, only ?rigid? reversibility has been considered, allowing to go back to a past state and restart the exact same computation, possibly leading to divergence. In this paper, we present croll-{\ensuremath{\pi}}, a concurrent calculus featuring flexible reversibility, allowing the specification of alternatives to a computation to be used upon rollback. Alternatives in croll-{\ensuremath{\pi}} are attached to messages. We show the robustness of this mechanism by encoding more complex idioms for specifying flexible reversibility, and we illustrate the benefits of our approach by encoding a calculus of communicating transactions.}, url = {http://eprints.imtlucca.it/2494/} }