Abstract
Reversible computation is a paradigm allowing computation to proceed not only in the usual, forward direction, but also backwards. Reversible computation has been studied in a variety of models, including sequential and concurrent programming languages, automata, process calculi, Turing machines, circuits, Petri nets, event structures, term rewriting, quantum computing, and others. Also, it has found applications in areas as different as low-power computing, debugging, simulation, robotics, database design, and biochemical modeling. Thus, while the broad idea of reversible computation is the same in all the areas, it has been interpreted and adapted to fit the various settings. The existing notions of reversible computation however have never been compared and categorized in detail. This work aims at being a first stepping stone towards a taxonomy of the approaches that co-exist under the term reversible computation. We hope that such a work will shed light on the relation among the various approaches.
I. Lanese has been partially supported by French ANR project DCore ANR-18-CE25-0007 and INdAM-GNCS Project CUP_E55F22000270001 “Proprietà qualitative e quantitative di sistemi reversibili”. I. Ulidowski has been partially supported by JSPS Fellowship grant S21050. G. Vidal has been partially supported by grant PID2019-104735RB-C41 funded by MCIN/AEI/ 10.13039/501100011033. J.A. Miszczak has been partially supported by NCN grant 2019/33/B/ST6/02011.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
In the following we mainly use the term model to refer to the instances of reversible computation that we consider. Indeed, many of our examples are (formal) models. However, we think that our taxonomy can be applied also to more concrete entities, such as languages, applications or systems.
References
Abramsky, S.: A structural approach to reversible computation. Theor. Comput. Sci. 347(3), 441–464 (2005)
Axelsen, H.B., Glück, R.: A simple and efficient universal reversible Turing machine. In: Dediu, A.-H., Inenaga, S., Martín-Vide, C. (eds.) LATA 2011. LNCS, vol. 6638, pp. 117–128. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-21254-3_8
Axelsen, H.B., Glück, R.: On reversible Turing machines and their function universality. Acta Informatica 53(5), 509–543 (2016). https://doi.org/10.1007/s00236-015-0253-y
Axelsen, H.B., Glück, R., Yokoyama, T.: Reversible machine code and its abstract processor architecture. In: Diekert, V., Volkov, M.V., Voronkov, A. (eds.) CSR 2007. LNCS, vol. 4649, pp. 56–69. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-74510-5_9
Barbanera, F., Lanese, I., de’Liguoro, U.: A theory of retractable and speculative contracts. Sci. Comput. Program. 167, 25–50 (2018)
Barylska, K., Koutny, M., Mikulski, Ł., Pia̧tkowski, M.: Reversible computation vs. reversibility in Petri nets. Sci. Comput. Program. 151, 48–60 (2018)
Behrmann, J., Vicol, P., Wang, K.-C., Grosse, R.B., Jacobsen, J.-H.: Understanding and mitigating exploding inverses in invertible neural networks. In: AISTATS 2021, volume 130 of Proceedings of Machine Learning Research, pp. 1792–1800. PMLR (2021)
Bennett, C.H.: Logical reversibility of computation. IBM J. Res. Dev. 17(6), 525–532 (1973)
Bergstra, J.A., Ponse, A., van Wamel, J.J.: Process algebra with backtracking. In: de Bakker, J.W., de Roever, W.-P., Rozenberg, G. (eds.) REX 1993. LNCS, vol. 803, pp. 46–91. Springer, Heidelberg (1994). https://doi.org/10.1007/3-540-58043-3_17
Bernardo, M., Mezzina, C.A.: Towards bridging time and causal reversibility. In: Gotsman, A., Sokolova, A. (eds.) FORTE 2020. LNCS, vol. 12136, pp. 22–38. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-50086-3_2
Bernstein, A.P., Newcomer, E.: Principles of Transaction Processing, 2nd edn. Morgan Kaufmann Publishers Inc., Burlington (2009)
Bocchi, L., Lanese, I., Mezzina, C.A., Yuen, S.: The reversible temporal process language. In: Mousavi, M.R., Philippou, A. (eds.) FORTE 2022. LNCS, vol. 13273, pp. 31–49. Springer, Cham (2022). https://doi.org/10.1007/978-3-031-08679-3_3
Briggs, J.S.: Generating reversible programs. Softw. Pract. Exper. 17(7), 439–453 (1987)
Bruni, R., Melgratti, H.C., Montanari, U.: Theoretical foundations for compensations in flow composition languages. In: POPL 2005, pp. 209–220. ACM (2005)
Caires, L., Ferreira, C., Vieira, H.: A process calculus analysis of compensations. In: Kaklamanis, C., Nielson, F. (eds.) TGC 2008. LNCS, vol. 5474, pp. 87–103. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-00945-7_6
Cardelli, L., Laneve, C.: Reversibility in massive concurrent systems. Sci. Ann. Comput. Sci. 21(2), 175–198 (2011)
Castellani, I., Dezani-Ciancaglini, M., Giannini, P.: Reversible sessions with flexible choices. Acta Inform. 56(7–8), 553–583 (2019)
Cristescu, I., Krivine, J., Varacca, D.: A compositional semantics for the reversible \(\pi \)-calculus. In: LICS 2013, pp. 388–397. IEEE Computer Society (2013)
Danos, V., Krivine, J.: Reversible communicating systems. In: Gardner, P., Yoshida, N. (eds.) CONCUR 2004. LNCS, vol. 3170, pp. 292–307. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-28644-8_19
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). https://doi.org/10.1007/11539452_31
Davis, M.G., Smith, E., Tudor, A., Sen, K., Siddiqi, I., Iancu, C.: Towards optimal topology aware quantum circuit synthesis. In: QCE 2020, pp. 223–234. IEEE (2020)
De Vos, A.: Reversible Computing: Fundamentals, Quantum Computing, and Applications. Wiley, Hoboken (2010)
De Vos, A., De Baerdemacker, S., Van Rentergem, Y., Synthesis of quantum circuits vs. synthesis of classical reversible circuits. In: Synthesis Lectures on Digital Circuits and Systems. Morgan & Claypool Publishers (2018)
Deutsch, D.: Quantum theory, the Church-Turing principle and the universal quantum computer. Proc. Roy. Soc. Lond. A. Math. Phys. Sci. 400(1818), 97–117 (1985)
Esparza, J., Nielsen, M.: Decidability issues for Petri nets. BRICS Rep. Ser. 1(8), 1994
Feynman, P.R.: Quantum mechanical computers. Found. Phys. 16(6), 507–531 (1986)
Frank, M.P.: Reversibility for efficient computing. Ph.D. thesis, Massachusetts Institute of Technology, Cambridge, MA, USA (1999)
Fredkin, E., Toffoli, T.: Quantum mechanical computers. Int. J. Theor. Phys. 21(3–4), 219–253 (1982)
Giachino, E., Lanese, I., Mezzina, C.A.: Causal-consistent reversible debugging. In: Gnesi, S., Rensink, A. (eds.) FASE 2014. LNCS, vol. 8411, pp. 370–384. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-642-54804-8_26
Glück, R., Yokoyama, T.: A linear-time self-interpreter of a reversible imperative language. Comput. Softw. 33(3), 108–128 (2016)
Glück, R., Yokoyama, T.: A minimalist’s reversible while language. IEICE Trans. Inf. Syst. E100-D(5), 1026–1034 (2017)
Glück, R., Yokoyama, T.: Reversible computing from a programming language perspective. Theor. Comput. Sci. 953, Article 113429 (2023)
Gomez, A.N., Ren, M., Urtasun, R., Grosse, R.B.: The reversible residual network: backpropagation without storing activations. In: Advances in Neural Information Processing Systems. NIPS 2017, vol. 30, pp. 2214–2224. Curran Associates Inc. (2017)
Graversen, E., Phillips, I.C.C., Yoshida, N.: Event structure semantics of (controlled) reversible CCS. J. Log. Algebraic Methods Program. 121, 100686 (2021)
Haulund, T., Mogensen, T.Æ., Glück, R.: Implementing reversible object-oriented language features on reversible machines. In: Phillips, I., Rahaman, H. (eds.) RC 2017. LNCS, vol. 10301, pp. 66–73. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-59936-6_5
Hay-Schmidt, L., Glück, R., Cservenka, M.H., Haulund, T.: Towards a unified language architecture for reversible object-oriented programming. In: Yamashita, S., Yokoyama, T. (eds.) RC 2021. LNCS, vol. 12805, pp. 96–106. Springer, Cham (2021). https://doi.org/10.1007/978-3-030-79837-6_6
Hoey, J., Ulidowski, I.: Reversing an imperative concurrent programming language. Sci. Comput. Program. 223, 102873 (2022)
Jacobsen, P.A.H., Kaarsgaard, R., Thomsen, M.K.: \(\sf CoreFun\): a typed functional reversible core language. In: Kari, J., Ulidowski, I. (eds.) RC 2018. LNCS, vol. 11106, pp. 304–321. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-99498-7_21
Jacobson, J.: A formalization of DARCs patch theory using inverse semigroups. Technical report, UCLA (2009)
Kari, J.: Reversible cellular automata: from fundamental classical results to recent developments. New Gener. Comput. 36(3), 145–172 (2018)
Kelly, F.P.: Reversibility and Stochastic Networks. Wiley, Hoboken (1979)
Knill, E.: Conventions for quantum pseudocode. Technical report LAUR-96-2724, Los Alamos National Lab (1996)
Kristensen, J.T., Kaarsgaard, R., Thomsen, M.K.: Jeopardy: an invertible functional programming language. CoRR, arXiv:2209.02422 (2022)
Kuhn, S., Ulidowski, I.: Local reversibility in a calculus of covalent bonding. Sci. Comput. Program. 151, 18–47 (2018)
Kuhn, S., Ulidowski, I.: Modelling of DNA mismatch repair with a reversible process calculus. Theor. Comput. Sci. 925, 68–86 (2022)
Kutrib, M., Malcher, A.: Reversible pushdown automata. J. Comput. Syst. Sci. 78(6), 1814–1827 (2012)
Landauer, R.: Irreversibility and heat generation in the computing process. IBM J. Res. Dev. 5(3), 183–191 (1961)
Lanese, I., Lienhardt, M., Mezzina, C.A., Schmitt, A., Stefani, J.-B.: Concurrent flexible reversibility. In: Felleisen, M., Gardner, P. (eds.) ESOP 2013. LNCS, vol. 7792, pp. 370–390. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-37036-6_21
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). https://doi.org/10.1007/978-3-642-23217-6_20
Lanese, I., Mezzina, C.A., Stefani, J.-B.: Controlled reversibility and compensations. In: Glück, R., Yokoyama, T. (eds.) RC 2012. LNCS, vol. 7581, pp. 233–240. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-36315-3_19
Lanese, I., Mezzina, C.A., Stefani, J.-B.: Reversibility in the higher-order \(\pi \)-calculus. Theor. Comput. Sci. 625, 25–84 (2016)
Lanese, I., Mezzina, C.A., Tiezzi, F.: Causal-consistent reversibility. Bull. EATCS 114 (2014)
Lanese, I., Nishida, N., Palacios, A., Vidal, G.: A theory of reversibility for Erlang. J. Log. Algebr. Meth. Program. 100, 71–97 (2018)
Lanese, I., Palacios, A., Vidal, G.: Causal-consistent replay reversible semantics for message passing concurrent programs. Fundam. Informaticae 178(3), 229–266 (2021)
Lanese, I., Schultz, U.P., Ulidowski, I.: Reversible computing in debugging of Erlang programs. IT Prof. 24(1), 74–80 (2022)
Laursen, J.S., Ellekilde, L.-P.: Schultz, U.P.: Modelling reversible execution of robotic assembly. Robotica 36(5), 625–654 (2018)
LeCun, Y., Bottou, L., Bengio, Y., Haffner, P.: Gradient-based learning applied to document recognition. Proc. IEEE 86(11), 2278–2324 (1998)
Matsuda, K., Hu, Z., Nakano, K., Hamana, M., Takeichi, M.: Bidirectionalization transformation based on automatic derivation of view complement functions. In: ICFP 2007, PP. 47–58. ACM (2007)
McNellis, J., Mola, J., Sykes, K.: Time travel debugging: root causing bugs in commercial scale software. CppCon talk (2017). https://www.youtube.com/watch?v=l1YJTg_A914
Melgratti, H., Mezzina, C.A., Pinna, G.M.: Towards a truly concurrent semantics for reversible CCS. In: Yamashita, S., Yokoyama, T. (eds.) RC 2021. LNCS, vol. 12805, pp. 109–125. Springer, Cham (2021). https://doi.org/10.1007/978-3-030-79837-6_7
Melgratti, H.C., Mezzina, C.A., Pinna, G.M.: A Petri net view of covalent bonds. Theor. Comput. Sci. 908, 89–119 (2022)
Melgratti, H.C., Mezzina, C.A., Ulidowski, I.: Reversing place transition nets. Log. Methods Comput. Sci. 16(4) (2020)
Mimram, S., Di Giusto, C.: A categorical theory of patches. In: MFPS XXIX. Electronic Notes in Theoretical Computer Science, vol. 298, PP. 283–307. Elsevier (2013)
Miszczak, J.: Models of quantum computation and quantum programming languages. Bull. Polish Acad. Sci. Tech. Sci. 59(3), 305–324 (2011)
Miszczak, J.: High Level Structures for Quantum Computing. Springer, Cham (2012). https://doi.org/10.1007/978-3-031-02516-7
Morita, K.: Computation-universality of one-dimensional one-way reversible cellular automata. Inf. Process. Lett. 42(6), 325–329 (1992)
Morita, K.: Reversible computing and cellular automata–a survey. Theor. Comput. Sci. 395(1), 101–131 (2008)
Morita, K.: Theory of Reversible Computing. Monographs in Theoretical Computer Science. An EATCS Series. Springer, Tokyo (2017). https://doi.org/10.1007/978-4-431-56606-9
Morrison, D., Ulidowski, I.: Direction-reversible self-timed cellular automata for delay-insensitive circuits. J. Cell. Autom. 12(1–2), 101–120 (2016)
Nakano, K.: Time-symmetric Turing machines for computable involutions. Sci. Comput. Program. 215, 102748 (2022)
Nash, B., Gheorghiu, V., Mosca, M.: Quantum circuit optimizations for NISQ architectures. Quantum Sci. Technol. 5(2), 025010 (2020)
Nishida, N., Palacios, A., Vidal, G.: Reversible computation in term rewriting. J. Log. Algebr. Methods Program. 94, 128–149 (2018)
Nishida, N., Vidal, G.: Characterizing compatible view updates in syntactic bidirectionalization. In: Thomsen, M.K., Soeken, M. (eds.) RC 2019. LNCS, vol. 11497, pp. 67–83. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-21500-2_5
Ömer, B.: Structured Quantum Programming. Ph.D. thesis, Vienna University of Technology (2003)
Paolini, L., Piccolo, M., Roversi, L.: On a class of reversible primitive recursive functions and its Turing-complete extensions. New Gener. Comput. 36(3), 233–256 (2018)
Perumalla, K.S.:Introduction to Reversible Computing. CRC Press/Taylor & Francis Group (2014)
Philippou, A., Psara, K.: Reversible computation in Petri nets. In: Kari, J., Ulidowski, I. (eds.) RC 2018. LNCS, vol. 11106, pp. 84–101. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-99498-7_6
Philippou, A., Psara, K.: A collective interpretation semantics for reversing Petri nets. Theor. Comput. Sci. 924, 148–170 (2022)
Phillips, I., Ulidowski, I.: Reversibility and asymmetric conflict in event structures. In: D’Argenio, P.R., Melgratti, H. (eds.) CONCUR 2013. LNCS, vol. 8052, pp. 303–318. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-40184-8_22
Phillips, I., Ulidowski, I.: Event identifier logic. Math. Struct. Comput. Sci. 24(2) (2014)
Phillips, I., Ulidowski, I.: Reversibility and asymmetric conflict in event structures. J. Log. Algebr. Methods Program. 84(6), 781–805 (2015)
Phillips, I., Ulidowski, I., Yuen, S.: A reversible process calculus and the modelling of the ERK signaling pathway. In: Glück, R., Yokoyama, T. (eds.) RC 2012. LNCS, vol. 7581, pp. 218–232. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-36315-3_18
Phillips, I.C.C., Ulidowski, I.: Reversing algebraic process calculi. J. Log. Algebr. Program. 73(1–2), 70–96 (2007)
Schordan, M., Oppelstrup, T., Jefferson, D.R., Barnes Jr., P.D.: Generation of reversible C++ code for optimistic parallel discrete event simulation. New Gener. Comput. 36(3), 257–280 (2018)
Schultz, U.P., Axelsen, H.B.: Elements of a reversible object-oriented language. In: Devitt, S., Lanese, I. (eds.) RC 2016. LNCS, vol. 9720, pp. 153–159. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-40578-0_10
Schultz, U.P., Bordignon, M., Støy, K.: Robust and reversible execution of self-reconfiguration sequences. Robotica 29(1), 35–57 (2011)
Siljak, H., Psara, K., Philippou, A.: Distributed antenna selection for massive MIMO using reversing Petri nets. IEEE Wirel. Commun. Lett. 8(5), 1427–1430 (2019)
Thomsen, M.K., Axelsen, H.B.: Interpretation and programming of the reversible functional language RFUN. In: IFL 2015, pp. 8:1–8:13. ACM (2015)
Thomsen, M.K., Axelsen, H.B., Glück, R.: A reversible processor architecture and its reversible logic design. In: De Vos, A., Wille, R. (eds.) RC 2011. LNCS, vol. 7165, pp. 30–42. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-29517-1_3
Toffoli, T.: Reversible computing. In: de Bakker, J., van Leeuwen, J. (eds.) ICALP 1980. LNCS, vol. 85, pp. 632–644. Springer, Heidelberg (1980). https://doi.org/10.1007/3-540-10003-2_104
Toffoli, T., Margolus, N.: Cellular Automata Machines. A New Environment for Modeling. MIT Press, Cambridge (1987)
Ulidowski, I., Phillips, I., Yuen, S.: Reversing event structures. New Gener. Comput. 36(3), 281–306 (2018)
Undo, UDB - reverse debugger for C/C++ (2020). https://undo.io
Vassor, M.: Reversibility and predictions. In: Yamashita, S., Yokoyama, T. (eds.) RC 2021. LNCS, vol. 12805, pp. 163–181. Springer, Cham (2021). https://doi.org/10.1007/978-3-030-79837-6_10
Yokoyama, T., Axelsen, H.B., Glück, R.: Towards a reversible functional language. In: De Vos, A., Wille, R. (eds.) RC 2011. LNCS, vol. 7165, pp. 14–29. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-29517-1_2
Yokoyama, T., Axelsen, H.B., Glück, R.: Fundamentals of reversible flowchart languages. Theor. Comput. Sci. 611, 87–115 (2016)
Yokoyama, T., Glück, R.: A reversible programming language and its invertible self-interpreter. In: PEPM 2007, pp. 144–153. ACM (2007)
Acknowledgements
This work refines and extends the results of discussions that occurred during the meetings of the COST Action IC1405 on Reversible Computation – Extending Horizons of Computing. We thank all the participants to such discussions. The authors were partially supported by the COST Action IC1405. We thank the anonymous referees for their helpful comments.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Glück, R. et al. (2023). Towards a Taxonomy for Reversible Computation Approaches. In: Kutrib, M., Meyer, U. (eds) Reversible Computation. RC 2023. Lecture Notes in Computer Science, vol 13960. Springer, Cham. https://doi.org/10.1007/978-3-031-38100-3_3
Download citation
DOI: https://doi.org/10.1007/978-3-031-38100-3_3
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-38099-0
Online ISBN: 978-3-031-38100-3
eBook Packages: Computer ScienceComputer Science (R0)