Concurrent Flexible Reversibility

  • Ivan Lanese
  • Michael Lienhardt
  • Claudio Antares Mezzina
  • Alan Schmitt
  • Jean-Bernard Stefani
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7792)

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-π, a concurrent calculus featuring flexible reversibility, allowing the specification of alternatives to a computation to be used upon rollback. Alternatives in croll-π 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.

References

  1. 1.
    Abadi, M., Harris, T.: Perspectives on Transactional Memory. In: Bravetti, M., Zavattaro, G. (eds.) CONCUR 2009. LNCS, vol. 5710, pp. 1–14. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  2. 2.
    Bacci, G., Danos, V., Kammar, O.: On the Statistical Thermodynamics of Reversible Communicating Processes. In: Corradini, A., Klin, B., Cîrstea, C. (eds.) CALCO 2011. LNCS, vol. 6859, pp. 1–18. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  3. 3.
    Rouse Ball, W.W.: Mathematical Recreations and Essays, 12th edn. Macmillan, New York (1947)Google Scholar
  4. 4.
    Berry, G., Lévy, J.-J.: Minimal and optimal computations of recursive programs. J. ACM 26(1) (1979)Google Scholar
  5. 5.
    Bruni, R., Melgratti, H.C., Montanari, U.: Theoretical foundations for compensations in flow composition languages. In: POPL 2005. ACM (2005)Google Scholar
  6. 6.
    Bruni, R., Montanari, U.: Zero-safe nets: Comparing the collective and individual token approaches. Information and Computation 156(1-2) (2000)Google Scholar
  7. 7.
    Butler, M., Hoare, T., Ferreira, C.: A Trace Semantics for Long-Running Transactions. In: Abdallah, A.E., Jones, C.B., Sanders, J.W. (eds.) CSP25. LNCS, vol. 3525, pp. 133–150. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  8. 8.
    Cardelli, L., Laneve, C.: Reversible structures. In: CMSB 2011. ACM (2011)Google Scholar
  9. 9.
    Chothia, T., Duggan, D.: Abstractions for fault-tolerant global computing. Theor. Comput. Sci. 322(3) (2004)Google Scholar
  10. 10.
    Clavel, M., Durán, F., Eker, S., Lincoln, P., Martí-Oliet, N., Meseguer, J., Quesada, J.F.: Maude: specification and programming in rewriting logic. Theor. Comp. Sci. 285(2) (2002)Google Scholar
  11. 11.
    Danos, V., Krivine, J.: Reversible Communicating Systems. In: Gardner, P., Yoshida, N. (eds.) CONCUR 2004. LNCS, vol. 3170, pp. 292–307. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  12. 12.
    Danos, V., Krivine, J.: Transactions in RCCS. In: Abadi, M., de Alfaro, L. (eds.) CONCUR 2005. LNCS, vol. 3653, pp. 398–412. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  13. 13.
    de Vries, E., Koutavas, V., Hennessy, M.: Communicating Transactions. In: Gastin, P., Laroussinie, F. (eds.) CONCUR 2010. LNCS, vol. 6269, pp. 569–583. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  14. 14.
    Donnelly, K., Fluet, M.: Transactional events. Journal of Functional Programming 18(5-6) (2008)Google Scholar
  15. 15.
    Field, J., Varela, C.A.: Transactors: a programming model for maintaining globally consistent distributed state in unreliable environments. In: POPL 2005. ACM (2005)Google Scholar
  16. 16.
    Lanese, I., Lienhardt, M., Mezzina, C.A., Schmitt, A., Stefani, J.-B.: Concurrent flexible reversibility, TR (2012), http://www.cs.unibo.it/~lanese/publications/fulltext/TR-crollpi.pdf.gz
  17. 17.
    Lanese, I., Mezzina, C.A., Schmitt, A., Stefani, J.-B.: Controlling Reversibility in Higher-Order Pi. In: Katoen, J.-P., König, B. (eds.) CONCUR 2011. LNCS, vol. 6901, pp. 297–311. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  18. 18.
    Lanese, I., Mezzina, C.A., Stefani, J.-B.: Reversing Higher-Order Pi. In: Gastin, P., Laroussinie, F. (eds.) CONCUR 2010. LNCS, vol. 6269, pp. 478–493. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  19. 19.
    Leeman, G.B.: A formal approach to undo operations in programming languages. ACM Trans. Program. Lang. Syst. 8(1) (1986)Google Scholar
  20. 20.
    Lienhardt, M., Lanese, I., Mezzina, C.A., Stefani, J.-B.: A Reversible Abstract Machine and Its Space Overhead. In: Giese, H., Rosu, G. (eds.) FMOODS/FORTE 2012. LNCS, vol. 7273, pp. 1–17. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  21. 21.
    Moore, K.F., Grossman, D.: High-level small-step operational semantics for transactions. In: POPL 2008. ACM (2008)Google Scholar
  22. 22.
    Phillips, I., Ulidowski, I.: Reversing algebraic process calculi. J. Log. Algebr. Program. 73(1-2) (2007)Google Scholar
  23. 23.
    Phillips, I., Ulidowski, I.: A logic with reverse modalities for history-preserving bisimulations. In: EXPRESS 2011. EPTCS, vol. 64 (2011)Google Scholar
  24. 24.
    Phillips, I., Ulidowski, I., Yuen, S.: A Reversible Process Calculus and the Modelling of the ERK Signalling Pathway. In: Glück, R., Yokoyama, T. (eds.) RC 2012. LNCS, vol. 7581, pp. 218–232. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  25. 25.
    Sangiorgi, D., Walker, D.: The π-calculus: A Theory of Mobile Processes. Cambridge University Press (2001)Google Scholar
  26. 26.
    Ziarek, L., Jagannathan, S.: Lightweight checkpointing for concurrent ML. J. Funct. Program. 20(2) (2010)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Ivan Lanese
    • 1
  • Michael Lienhardt
    • 2
  • Claudio Antares Mezzina
    • 3
  • Alan Schmitt
    • 4
  • Jean-Bernard Stefani
    • 4
  1. 1.Focus TeamUniversity of Bologna/InriaItaly
  2. 2.PPS LaboratoryParis Diderot UniversityFrance
  3. 3.SOA UnitFBKTrentoItaly
  4. 4.InriaFrance

Personalised recommendations