Skip to main content

Isomorphic Interpreters from Logically Reversible Abstract Machines

  • Conference paper
Reversible Computation (RC 2012)

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

Included in the following conference series:

Abstract

In our previous work, we developed a reversible programming language and established that every computation in it is a (partial) isomorphism that is reversible and that preserves information. The language is founded on type isomorphisms that have a clear categorical semantics but that are awkward as a notation for writing actual programs, especially recursive ones. This paper remedies this aspect by presenting a systematic technique for developing a large and expressive class of reversible recursive programs, that of logically reversible small-step abstract machines. In other words, this paper shows that once we have a logically reversible machine in a notation of our choice, expressing the machine as an isomorphic interpreter can be done systematically and does not present any significant conceptual difficulties. Concretely, we develop several simple interpreters over numbers and addition, move on to tree traversals, and finish with a meta-circular interpreter for our reversible language. This gives us a means of developing large reversible programs with the ease of reasoning at the level of a conventional small-step semantics.

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 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 49.99
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. Abramsky, S.: A structural approach to reversible computation. Theor. Comput. Sci. 347, 441–464 (2005)

    Article  MathSciNet  MATH  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. Bowman, W.J., James, R.P., Sabry, A.: Dagger Traced Symmetric Monoidal Categories and Reversible Programming. In: Reversible Computation (2011)

    Google Scholar 

  4. Cheney, J., Hinze, R.: First-class phantom types. Tech. rep., Cornell Univ. (2003)

    Google Scholar 

  5. Danvy, O.: From Reduction-Based to Reduction-Free Normalization. In: Koopman, P., Plasmeijer, R., Swierstra, D. (eds.) AFP 2008. LNCS, vol. 5832, pp. 66–164. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  6. Huelsbergen, L.: A logically reversible evaluator for the call-by-name lambda calculus. InterJournal Complex Systems 46 (1996)

    Google Scholar 

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

    Google Scholar 

  8. Kluge, W.E.: A Reversible SE(M)CD Machine. In: Koopman, P., Clack, C. (eds.) IFL 1999. LNCS, vol. 1868, pp. 95–113. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  9. Rendel, T., Ostermann, K.: Invertible syntax descriptions: unifying parsing and pretty printing. In: Symposium on Haskell, pp. 1–12. ACM (2010)

    Google Scholar 

  10. Selinger, P.: A survey of graphical languages for monoidal categories. In: New Structures for Physics. Lecture Notes in Physics, pp. 289–355. Springer (2011)

    Google Scholar 

  11. Xi, H., Chen, C., Chen, G.: Guarded recursive datatype constructors. In: POPL, pp. 224–235. ACM (2003)

    Google Scholar 

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

    Google Scholar 

  13. Yokoyama, T., Glück, R.: A reversible programming language and its invertible self-interpreter. In: PEPM, pp. 144–153. ACM (2007)

    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

James, R.P., Sabry, A. (2013). Isomorphic Interpreters from Logically Reversible Abstract Machines. In: Glück, R., Yokoyama, T. (eds) Reversible Computation. RC 2012. Lecture Notes in Computer Science, vol 7581. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-36315-3_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-36315-3_5

  • Publisher Name: Springer, Berlin, Heidelberg

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

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

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics