Skip to main content

Reversible Representation and Manipulation of Constructor Terms in the Heap

  • Conference paper
Reversible Computation (RC 2013)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 7948))

Included in the following conference series:

Abstract

We currently have limited understanding of how complex data (e.g. algebraic data types) can be represented and manipulated in reversible machine code, in particular without generating garbage. In this paper we present methods for representing and manipulating binary trees (constructor terms) in the heap of a reversible machine. We also give methods for enforcing the so-called first-match policy for a simplified version of the recent reversible functional language RFUN by Yokoyama et al., and simple methods to support let-calls via stack environments.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 54.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 72.00
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Axelsen, H.B.: Clean translation of an imperative reversible programming language. In: Knoop, J. (ed.) CC 2011. LNCS, vol. 6601, pp. 144–163. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  2. Axelsen, H.B., Glück, R.: What do reversible programs compute? In: Hofmann, M. (ed.) FOSSACS 2011. LNCS, vol. 6604, pp. 42–56. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

  4. Baker, H.G.: Lively linear Lisp – ‘Look Ma, no garbage!’. ACM Sigplan Notices 27(9), 89–98 (1992)

    Article  Google Scholar 

  5. Baker, H.G.: NREVERSAL of fortune – the thermodynamics of garbage collection. In: Bekkers, Y., Cohen, J. (eds.) IWMM-GIAE 1992. LNCS, vol. 637, pp. 507–524. Springer, Heidelberg (1992)

    Chapter  Google Scholar 

  6. Bennett, C.H.: Logical reversibility of computation. IBM Journal of Research and Development 17(6), 525–532 (1973)

    Article  MATH  Google Scholar 

  7. Frank, M.P.: Reversibility for Efficient Computing. Ph.D. thesis, EECS Dept., Massachusetts Institute of Technology (1999)

    Google Scholar 

  8. Glück, R., Kawabe, M.: A program inverter for a functional language with equality and constructors. In: Ohori, A. (ed.) APLAS 2003. LNCS, vol. 2895, pp. 246–264. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  9. James, R.P., Sabry, A.: Information effects. In: POPL 2012, pp. 73–84. ACM (2012)

    Google Scholar 

  10. James, R.P., Sabry, A.: Isomorphic interpreters from logically reversible abstract machines. In: Glück, R., Yokoyama, T. (eds.) RC 2012. LNCS, vol. 7581, pp. 57–71. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  11. Jones, N.D.: Computability and Complexity: From a Programming Language Perspective. MIT Press, Cambridge (1997)

    MATH  Google Scholar 

  12. McCarthy, J.: Recursive functions of symbolic expressions. Communications of the ACM 3(4), 184–195 (1960)

    Article  MATH  Google Scholar 

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

    Chapter  Google Scholar 

  14. Yokoyama, T., Axelsen, H.B., Glück, R.: Principles of a reversible programming language. In: Proceedings of Computing Frontiers, pp. 43–54. ACM (2008)

    Google Scholar 

  15. 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, Part II. LNCS, vol. 5126, pp. 258–270. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Axelsen, H.B., Glück, R. (2013). Reversible Representation and Manipulation of Constructor Terms in the Heap. In: Dueck, G.W., Miller, D.M. (eds) Reversible Computation. RC 2013. Lecture Notes in Computer Science, vol 7948. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-38986-3_9

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-38986-3_9

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-38985-6

  • Online ISBN: 978-3-642-38986-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics