Advertisement

Static versus dynamic reversibility in CCS

  • Ivan Lanese
  • Doriana Medić
  • Claudio Antares MezzinaEmail author
Original Article
  • 39 Downloads

Abstract

The notion of reversible computing is attracting interest because of its applications in diverse fields, in particular the study of programming abstractions for fault tolerant systems. Most computational models are not naturally reversible since computation causes loss of information, and history information must be stored to enable reversibility. In the literature, two approaches to reverse the CCS process calculus exist, differing on how history information is kept. Reversible CCS (RCCS), proposed by Danos and Krivine, exploits dedicated stacks of memories attached to each thread. CCS with Keys (CCSK), proposed by Phillips and Ulidowski, makes CCS operators static so that computation does not cause information loss. In this paper we show that RCCS and CCSK are equivalent in terms of LTS isomorphism.

Notes

Acknowledgements

We would like to thank Irek Ulidowski for insightful discussions on CCSK and opinions on an earlier version of the encoding from RCCS to CCSK. We would also like to thank the anonymous reviewers of the present paper for their useful remarks and suggestions, which led to substantial improvements.

References

  1. 1.
    Aubert, C., Cristescu, I.: Contextual equivalences in configuration structures and reversibility. J. Log. Algebraic Methods Program. 86(1), 77–106 (2017)MathSciNetCrossRefGoogle Scholar
  2. 2.
    Baeten, J.C.M., Verhoef, C.: A congruence theorem for structured operational semantics with predicates. In: Best, E. (ed.) Proceedings of the 4th International Conference on Concurrency Theory, Hildesheim (CONCUR’93) Germany, Lecture Notes in Computer Science, August 23–26, 1993, vol 715. Springer, pp. 477–492 (1993)Google Scholar
  3. 3.
    Berut, A., Arakelyan, A., Petrosyan, A., Ciliberto, S., Dillenschneider, R., Lutz, E.: Experimental verification of Landauer’ s principle linking information and thermodynamics. Nature 483(7388), 187–189 (2012). 03CrossRefGoogle Scholar
  4. 4.
    Boothe, B.: Efficient algorithms for bidirectional debugging. In: Proceedings of the ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation (PLDI’00), New York, NY, USA. ACM, pp. 299–310 (2000)Google Scholar
  5. 5.
    Boreale, M., Sangiorgi, D.: A fully abstract semantics for causality in the pi-calculus. In: Proceedings of the 12th Annual Symposium on Theoretical Aspects of Computer Science (STACS’95), Munich, Germany, March 2–4, 1995, pp. 243–254 (1995)CrossRefGoogle Scholar
  6. 6.
    Boudol, G.: Flow event structures and flow nets. In: Proceedings of the Semantics of Systems of Concurrent Processes, LITP Spring School on Theoretical Computer Science, La Roche Posay, France, April 23–27, 1990, pp. 62–95 (1990)Google Scholar
  7. 7.
    Boudol, G., Castellani, I.: Permutation of transitions: an event structure semantics for CCS and SCCS. In: Proceedings of the Linear Time, Branching Time and Partial Order in Logics and Models for Concurrency, School/Workshop, Noordwijkerhout, The Netherlands, May 30–June 3, 1988, pp. 411–427 (1988)Google Scholar
  8. 8.
    Boudol, G., Castellani, I.: Flow models of distributed computations: event structures and nets. Research Report RR-1482, INRIA (1991)Google Scholar
  9. 9.
    Boudol, G., Castellani, I.: Flow models of distributed computations: three equivalent semantics for CCS. Inf. Comput. 114(2), 247–314 (1994)MathSciNetCrossRefGoogle Scholar
  10. 10.
    Cardelli, L., Laneve, C.: Reversible structures. In: Fages, F. (ed.) Proceedings of the 9th International Conference Computational Methods in Systems Biology (CMSB) 2011, Paris, France, September 21–23, 2011. ACM, pp. 131–140 (2011)Google Scholar
  11. 11.
    Castellani, I., Zhang, G.: Parallel product of event structures. Theor. Comput. Sci. 179(1–2), 203–215 (1997)MathSciNetCrossRefGoogle Scholar
  12. 12.
    Crafa, S., Varacca, D., Yoshida, N.: Event structure semantics of parallel extrusion in the pi-calculus. In: Proceedings of the 15th International Conference Foundations of Software Science and Computational Structures (FOSSACS 2012), Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2012, Tallinn, Estonia, March 24–April 1, 2012, pp. 225–239 (2012)CrossRefGoogle Scholar
  13. 13.
    Cristescu, I., Krivine, J., Varacca, D.: A compositional semantics for the reversible pi-calculus. In: 28th Annual ACM/IEEE Symposium on Logic in Computer Science, LICS 2013, New Orleans, LA, USA, June 25–28, 2013. IEEE Computer Society, pp. 388–397 (2013)Google Scholar
  14. 14.
    Cristescu, I., Krivine, J., Varacca, D.: Rigid families for the reversible \(\pi \)-calculus. In: Proceedings of the 8th International Conference on Reversible Computation (RC2016), Bologna, Italy, July 7–8, 2016, Lecture Notes in Computer Science, vol. 9720. Springer, pp. 3–19 (2016)Google Scholar
  15. 15.
    Danos, V., Krivine, J.: Reversible communicating systems. In: Proceedings of the 15th International Conference o Concurrency Theory (CONCUR 2004), London, UK, August 31–September 3, 2004, pp. 292–307 (2004)CrossRefGoogle Scholar
  16. 16.
    Danos, V., Krivine, J.: Transactions in RCCS. In: Proceedings of the 16th International Conference on Concurrency Theory (CONCUR 2005), San Francisco, CA, USA, August 23–26, 2005, pp. 398–412 (2005)Google Scholar
  17. 17.
    Danos, V., Krivine, J.: Formal molecular biology done in CCS-R. In: Proceedings of the First Workshop on Concurrent Models in Molecular Biology (BioConcur 2003), Electr. Notes Theor. Comput. Sci., vol 180(3). Elsevier, pp. 31–49 (2007)Google Scholar
  18. 18.
    Danos, V., Krivine, J., Tarissan, F.: Self-assembling trees. In: Proceedings of the Third Workshop on Structural Operational Semantics (SOS 2006), Electr. Notes Theor. Comput. Sci., vol. 175(1). Elsevier, pp. 19–32 (2007)Google Scholar
  19. 19.
    Elnozahy, E.N.M., Alvisi, L., Wang, Y.-M., Johnson, D.B.: A survey of rollback-recovery protocols in message-passing systems. ACM Comput. Surv. 34(3), 375–408 (2002)CrossRefGoogle Scholar
  20. 20.
    Engblom, J.: A review of reverse debugging. In: System, Software, SoC and Silicon Debug Conference (S4D), 2012 Sept., pp. 1–6 (2012)Google Scholar
  21. 21.
    Giachino, E., Lanese, I., Mezzina, C.A.: Causal-consistent reversible debugging. In: 17th International Conference on Fundamental Approaches to Software Engineering (FASE 2014), pp. 370–384 (2014)CrossRefGoogle Scholar
  22. 22.
    Giachino, E., Lanese, I., Mezzina, C.A., Tiezzi, F.: Causal-consistent rollback in a tuple-based language. J. Log. Algebraic Methods Program. 88, 99–120 (2017)MathSciNetCrossRefGoogle Scholar
  23. 23.
    Graversen, E., Phillips, I., Yoshida, N.: Event structure semantics of (controlled) reversible CCS. In: Proceedings of the 10th International Conference on Reversible Computation (RC 2018), Leicester, UK, September 12–14, 2018, pp. 102–122 (2018)CrossRefGoogle Scholar
  24. 24.
    Gray, J., Reuter, A.: Transaction Processing: Concepts and Techniques, 1st edn. Morgan Kaufmann, San Francisco (1992)zbMATHGoogle Scholar
  25. 25.
    Krivine, J.: A verification technique for reversible process algebra. In: 4th International Workshop on Reversible Computation (RC 2012), Copenhagen, Denmark, July 2–3, 2012. Revised Papers, pp. 204–217 (2012)Google Scholar
  26. 26.
    Kuhn, S., Ulidowski, I.: Towards modelling of local reversibility. In: Proceedings of the 7th International Conference on Reversible Computation (RC 2015), Grenoble, France, July 16–17, 2015, Lecture Notes in Computer Science, vol. 9138. Springer, pp. 279–284 (2015)Google Scholar
  27. 27.
    Kuhn, S., Ulidowski, I.: A calculus for local reversibility. In: Proceedings of the 8th International Conference on Reversible Computation (RC 2016), Bologna, Italy, July 7–8, 2016, Lecture Notes in Computer Science, vol. 9720. Springer, pp. 20–35 (2016)Google Scholar
  28. 28.
    Laadan, O., Nieh, J.: Transparent checkpoint-restart of multiple processes on commodity operating systems. In: 2007 USENIX Annual Technical Conference on Proceedings of the USENIX Annual Technical Conference (ATC’07), Berkeley, CA, USA. USENIX Association, pp. 25:1–25:14 (2007)Google Scholar
  29. 29.
    Landauer, R.: Irreversibility and heat generation in the computing process. IBM J. Res. Dev. 5, 183–191 (1961)MathSciNetCrossRefGoogle Scholar
  30. 30.
    Lanese, I., Lienhardt, M., Mezzina, C.A., Schmitt, A., Stefani, J.-B.: Concurrent flexible reversibility. In: Programming Languages and Systems—22nd European Symposium on Programming (ESOP 2013), pp. 370–390 (2013)CrossRefGoogle Scholar
  31. 31.
    Lanese, I., Mezzina, C.A., Stefani, J.-B.: Reversing higher-order pi. In: Gastin, P., Laroussinie, F. (eds.) CONCUR, Lecture Notes in Computer Science, vol. 6269, pp. 478–493. Springer, Berlin (2010)Google Scholar
  32. 32.
    Lanese, I., Mezzina, C.A., Stefani, J.-B.: Reversibility in the higher-order \(\pi \)-calculus. Theor. Comput. Sci. 625, 25–84 (2016)MathSciNetCrossRefGoogle Scholar
  33. 33.
    Lanese, I., Mezzina, C.A., Tiezzi, F.: Causal-consistent reversibility. Bull. EATCS 3, 114 (2014)zbMATHGoogle Scholar
  34. 34.
    Lanese, I., Nishida, N., Palacios, A., Cauder, G. Vidal.: A causal-consistent reversible debugger for Erlang. In: Gallagher, J.P., Sulzmann, M. (eds.) Proceedings of the 14th International Symposium on Functional and Logic Programming (FLOPS 2018), Nagoya, Japan, May 9–11, 2018, Lecture Notes in Computer Science, vol. 10818. Springer, pp. 247–263 (2018)Google Scholar
  35. 35.
    Medic, D., Mezzina, C.A.: Static VS dynamic reversibility in CCS. In: Devitt, S.J., Lanese, I. (eds.) Proceedings of the 8th International Conference on Reversible Computation (RC 2016), Bologna, Italy, July 7–8, 2016, Lecture Notes in Computer Science, vol. 9720. Springer, pp. 36–51 (2016)Google Scholar
  36. 36.
    Medic, D., Mezzina, C.A., Phillips, I., Yoshida, N.: A parametric framework for reversible pi-calculi. In: Proceedings Combined 25th International Workshop on Expressiveness in Concurrency and 15th Workshop on Structural Operational Semantics and 15th Workshop on Structural Operational Semantics, EXPRESS/SOS 2018, Beijing, China, September 3, 2018, pp. 87–103 (2018)Google Scholar
  37. 37.
    Milner, R.: A Calculus of Communicating Systems. Lecture Notes in Computer Science, vol. 92. Springer, Berlin (1980)CrossRefGoogle Scholar
  38. 38.
    Palamidessi, C.: Comparing the expressive power of the synchronous and asynchronous pi-calculi. Math. Struct. Comput. Sci. 13(5), 685–719 (2003)CrossRefGoogle Scholar
  39. 39.
    Perumalla, K.S., Park, A.J.: Reverse computation for rollback-based fault tolerance in large parallel systems—evaluating the potential gains and systems effects. Clust. Comput. 17(2), 303–313 (2014)CrossRefGoogle Scholar
  40. 40.
    Phillips, I., Ulidowski, I.: Reversibility and models for concurrency. In: van Glabbeek, M.H.R. (ed.) Proceedings of the Fourth Workshop on Structural Operational Semantics (SOS 2007), Electr. Notes Theor. Comput. Sci., vol. 192(1). Elsevier, pp. 93–108 (2007)Google Scholar
  41. 41.
    Phillips, I., Ulidowski, I., Yuen, S.: A reversible process calculus and the modelling of the ERK signalling pathway. In: 4th International Workshop on Reversible Computation (RC 2012), Copenhagen, Denmark, July 2–3, 2012. Revised Papers, pp. 218–232 (2012)CrossRefGoogle Scholar
  42. 42.
    Phillips, I.C.C., Ulidowski, I.: Reversing algebraic process calculi. J. Log. Algebraic Program. 73(1–2), 70–96 (2007)MathSciNetCrossRefGoogle Scholar
  43. 43.
    Tsai, J.J.P., Fang, K., Chen, H., Bi, Y.: A noninterference monitoring and replay mechanism for real-time software testing and debugging. IEEE Trans. Softw. Eng. 16(8), 897–916 (1990)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag GmbH Germany, part of Springer Nature 2019

Authors and Affiliations

  1. 1.IMT School for Advanced Studies LuccaLuccaItaly
  2. 2.Focus TeamUniversity of BolognaBolognaItaly
  3. 3.Focus Team, Inria Sophia Antipolis - MéditerranéeValbonneFrance
  4. 4.Dipartimento di Scienze Pure e ApplicateUniversità di UrbinoUrbinoItaly

Personalised recommendations