Skip to main content
Log in

Static versus dynamic reversibility in CCS

  • Original Article
  • Published:
Acta Informatica Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9

Similar content being viewed by others

Notes

  1. Reachable processes are processes which are well formed in RCCS.

References

  1. Aubert, C., Cristescu, I.: Contextual equivalences in configuration structures and reversibility. J. Log. Algebraic Methods Program. 86(1), 77–106 (2017)

    Article  MathSciNet  Google Scholar 

  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)

  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). 03

    Article  Google Scholar 

  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)

  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)

  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)

  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)

  8. Boudol, G., Castellani, I.: Flow models of distributed computations: event structures and nets. Research Report RR-1482, INRIA (1991)

  9. Boudol, G., Castellani, I.: Flow models of distributed computations: three equivalent semantics for CCS. Inf. Comput. 114(2), 247–314 (1994)

    Article  MathSciNet  Google Scholar 

  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)

  11. Castellani, I., Zhang, G.: Parallel product of event structures. Theor. Comput. Sci. 179(1–2), 203–215 (1997)

    Article  MathSciNet  Google Scholar 

  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)

  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)

  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)

  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)

  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)

  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)

  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)

  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)

    Article  Google Scholar 

  20. Engblom, J.: A review of reverse debugging. In: System, Software, SoC and Silicon Debug Conference (S4D), 2012 Sept., pp. 1–6 (2012)

  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)

  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)

    Article  MathSciNet  Google Scholar 

  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)

  24. Gray, J., Reuter, A.: Transaction Processing: Concepts and Techniques, 1st edn. Morgan Kaufmann, San Francisco (1992)

    MATH  Google Scholar 

  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)

  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)

  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)

  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)

  29. Landauer, R.: Irreversibility and heat generation in the computing process. IBM J. Res. Dev. 5, 183–191 (1961)

    Article  MathSciNet  Google Scholar 

  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)

  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. Lanese, I., Mezzina, C.A., Stefani, J.-B.: Reversibility in the higher-order \(\pi \)-calculus. Theor. Comput. Sci. 625, 25–84 (2016)

    Article  MathSciNet  Google Scholar 

  33. Lanese, I., Mezzina, C.A., Tiezzi, F.: Causal-consistent reversibility. Bull. EATCS 3, 114 (2014)

    MATH  Google Scholar 

  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)

  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)

  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)

  37. Milner, R.: A Calculus of Communicating Systems. Lecture Notes in Computer Science, vol. 92. Springer, Berlin (1980)

    Book  Google Scholar 

  38. Palamidessi, C.: Comparing the expressive power of the synchronous and asynchronous pi-calculi. Math. Struct. Comput. Sci. 13(5), 685–719 (2003)

    Article  Google Scholar 

  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)

    Article  Google Scholar 

  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)

  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)

  42. Phillips, I.C.C., Ulidowski, I.: Reversing algebraic process calculi. J. Log. Algebraic Program. 73(1–2), 70–96 (2007)

    Article  MathSciNet  Google Scholar 

  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)

    Article  Google Scholar 

Download references

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.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Claudio Antares Mezzina.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

This work was partially supported by the COST Action IC1405 on “Reversible computation—extending horizons of computing” and French ANR Project DCore ANR-18-CE25-0007.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Lanese, I., Medić, D. & Mezzina, C.A. Static versus dynamic reversibility in CCS. Acta Informatica 58, 1–34 (2021). https://doi.org/10.1007/s00236-019-00346-6

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00236-019-00346-6

Navigation