Skip to main content

Connecting Reversible and Classical Computing Through Hybrid SSA

  • Conference paper
  • First Online:
Reversible Computation (RC 2024)

Abstract

Despite the numerous benefits of reversible computing, non-reversible systems remain relevant in the real world. There are cases where reversibility is even detrimental, for example when performing lossy data compressions, where the removal of information is inherently required. For reversible systems to be more broadly adopted, they need to be able to interact with non-reversible systems in one way or another.

To allow for seamless co-operation between both paradigms, we propose the integration of optional non-reversibility as a first-class citizen into reversible programming languages to create what we call hybrid programming languages. A hybrid programming language can express both reversible and non-reversible computations in a single host language.

This paper describes the hybrid static single assignment form HSSA. Based on the principles of RSSA, HSSA puts reversibility and determinism first, while providing facilities to allow for explicit nondeterminism in either direction.

This also includes forward-nondeterminism while maintaining the useful properties of symmetry and invertibility.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

Notes

  1. 1.

    Still, as shown by Glück and Yokoyama even non-bijective functions can be computed by reversible machines since any function can be made into a bijection by adding enough additional output data [8].

  2. 2.

    Actually, information only leaves the system if the function’s value has two or more domain counterparts. Relations that are injective on a subset of their domain are partially reversible. This is an interesting topic, but not investigated further in this paper.

References

  1. Appel, A.W.: SSA is functional programming. ACM SIGPLAN Notices 33(4), 17–20 (1998). http://dblp.uni-trier.de/db/journals/sigplan/sigplan33.html#Appel88

  2. Deworetzki, N., Gail, L.: Optimization of reversible control flow graphs. In: Kutrib, M., Meyer, U. (eds.) Reversible Computation. RC 2023. LNCS, vol. 13960, pp. 57–72. Springer, Cham (2023). https://doi.org/10.1007/978-3-031-38100-3_5

  3. Deworetzki, N., Meyer, U.: Program analysis for reversible languages. In: Proceedings of the 10th ACM SIGPLAN International Workshop on the State Of the Art in Program Analysis, pp. 13–18 (2021)

    Google Scholar 

  4. Frank, M.P.: Introduction to reversible computing: motivation, progress, and challenges. In: Proceedings of the 2nd Conference on Computing Frontiers. p. 385-390. CF ’05, Association for Computing Machinery, New York, NY, USA (2005). https://doi.org/10.1145/1062261.1062324

  5. Frank, M.P.: The future of computing depends on making it reversible. IEEE Spectr. 25(08), 2017 (2017)

    Google Scholar 

  6. Giachino, E., Lanese, I., Mezzina, C.A.: Causal-consistent reversible debugging. In: Gnesi, S., Rensink, A. (eds.) Fundamental Approaches to Software Engineering. FASE 2014. LNCS, vol. 8411, pp. 370–384. Springer, Berlin, Heidelberg (2014). https://doi.org/10.1007/978-3-642-54804-8_26

  7. Glück, R., Yokoyama, T.: Reversible computing from a programming language perspective. Theor. Comput. Sci. 953, 113429 (2023). https://doi.org/10.1016/J.TCS.2022.06.010

    Article  MathSciNet  Google Scholar 

  8. Glück, R., Yokoyama, T.: Making programs reversible with minimal extra data. N. Gener. Comput. (2022). https://doi.org/10.1007/s00354-022-00169-z

  9. Landauer, R.: Irreversibility and heat generation in the computing process. IBM J. Res. Dev. 5(3), 183–191 (1961). https://doi.org/10.1147/rd.53.0183

    Article  MathSciNet  Google Scholar 

  10. Matsuda, K., Wang, M.: Sparcl: a language for partially-invertible computation. Proc. ACM Program. Lang. 4(ICFP), 118:1–118:31 (2020). http://dblp.uni-trier.de/db/journals/pacmpl/pacmpl4.html#MatsudaW20

  11. Mogensen, T.Æ.: RSSA: a reversible SSA form. In: Mazzara, M., Voronkov, A. (eds.) PSI 2015. LNCS, vol. 9609, pp. 203–217. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-41579-6_16

    Chapter  Google Scholar 

  12. Muchnick, S., et al.: Advanced Compiler Design Implementation. Morgan Kaufmann, Burlington (1997)

    Google Scholar 

  13. Rosen, B.K., Wegman, M.N., Zadeck, F.K.: Global value numbers and redundant computations. In: Proceedings of the 15th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 12–27 (1988)

    Google Scholar 

  14. Technische Hochschule Mittelhessen: Reversible computing compiler collection (rc3). https://git.thm.de/thm-rc3/release

  15. Yokoyama, T., Axelsen, H.B., Glück, R.: Principles of a reversible programming language. In: Proceedings of the 5th Conference on Computing Frontiers, pp. 43–54. CF ’08, Association for Computing Machinery, New York, NY, USA (2008). https://doi.org/10.1145/1366230.1366239

  16. Yokoyama, T., Axelsen, H.B., Glück, R.: Reversible flowchart languages and the structured reversible program theorem. In: Aceto, L., Damgård, I., Goldberg, L.A., Halldórsson, M.M., Ingólfsdóttir, A., Walukiewicz, I. (eds.) ICALP 2008. LNCS, vol. 5126, pp. 258–270. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-70583-3_22

    Chapter  Google Scholar 

Download references

Acknowledgements

We would like to thank the reviewers for their valuable and insightful feedback.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Lukas Gail .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Gail, L., Meyer, U. (2024). Connecting Reversible and Classical Computing Through Hybrid SSA. In: Mogensen, T.Æ., Mikulski, Ł. (eds) Reversible Computation. RC 2024. Lecture Notes in Computer Science, vol 14680. Springer, Cham. https://doi.org/10.1007/978-3-031-62076-8_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-62076-8_11

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-62075-1

  • Online ISBN: 978-3-031-62076-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics