Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

Toward an Energy Efficient Language and Compiler for (Partially) Reversible Algorithms

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

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

Included in the following conference series:

  • 826 Accesses

Abstract

We introduce a new programming language for expressing reversibility, Energy-Efficient Language (Eel), geared toward algorithm design and implementation. Eel is the first language to take advantage of a partially reversible computation model, where programs can be composed of both reversible and irreversible operations. In this model, irreversible operations cost energy for every bit of information created or destroyed. To handle programs of varying degrees of reversibility, Eel supports a log stack to automatically trade energy costs for space costs, and introduces many powerful control logic operators including protected conditional, general conditional, protected loops, and general loops. In this paper, we present the design and compiler for the three language levels of Eel along with an interpreter to simulate and annotate incurred energy costs of a program.

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

Access this chapter

Subscribe and save

Springer+ Basic
EUR 32.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
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.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

Similar content being viewed by others

References

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

    Chapter  Google Scholar 

  2. 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 

  3. Bennett, C.H.: Logical reversibility of computation. Maxwell Demon. Entropy Inf. Comput. 197–204 (1973). http://liinwww.ira.uka.de/cgi-bin/bibshow?e=Njtd0jcnkse/fyqboefe%7d2789553&r=bibtex&mode=intra

  4. Charles, H.: Bennett. time/space trade-offs for reversible computation. SIAM J. Comput. 18(4), 766–776 (1989)

    Article  MathSciNet  MATH  Google Scholar 

  5. Buhrman, H., Tromp, J., Vitányi, P.M.B.: Time and space bounds for reversible simulation. In: Orejas, F., Spirakis, P.G., van Leeuwen, J. (eds.) ICALP 2001. LNCS, vol. 2076, p. 1017. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  6. Demaine, E.D., Lynch, J., Mirano, G.J., Tyagi, N.: Energy-efficient algorithms. In: Proceedings of 2016 ACM Conference on Innovations in Theoretical Computer Science, pp. 321–332. ACM (2016)

    Google Scholar 

  7. Frank, M.P., Knight, Jr. T.F.: Reversibility for efficient computing. Ph.D. thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology (1999)

    Google Scholar 

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

    Article  MathSciNet  MATH  Google Scholar 

  9. Lange, K.-J., McKenzie, P., Tapp, A.: Reversible space equals deterministic space. J. Comput. Syst. Sci. 60(2), 354–367 (2000)

    Article  MathSciNet  MATH  Google Scholar 

  10. Lecerf, Y.: Logique mathematique-machines de turing reversibles-recursive insolubilite en nsigman de lequation u= thetanu, ou theta est un isomorphisme de codes. Comptes rendus hebdomadaires des séances de l’Académie des sciences 257(18), 2597 (1963)

    MathSciNet  Google Scholar 

  11. Li, M., Vitanyi, P.: Reversible simulation of irreversible computation. In: Proceedings of 11th Annual IEEE Conference on Computational Complexity, pp. 301–306. IEEE (1996)

    Google Scholar 

  12. Lutz, C., Derby, H.: Janus: a time-reversible language. Caltech Class Project (1982)

    Google Scholar 

  13. Mogensen, T.Æ.: Partial evaluation of Janus Part 2: assertions and procedures. In: Clarke, E., Virbitskaite, I., Voronkov, A. (eds.) PSI 2011. LNCS, vol. 7162, pp. 289–301. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  14. Mogensen, T.Æ., Partial evaluation of the reversible language Janus. In: Proceedings of 20th ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, pp. 23–32. ACM (2011)

    Google Scholar 

  15. Perumalla, K., Fujimoto, R.: Source code transformations for efficient reversibility. Coll. Comput. Georgia Inst. Technol. (1999). https://smartech.gatech.edu/handle/1853/6621

  16. Somavat, P., Namboodiri, V., et al.: Energy consumption of personal computing including portable communication devices. J. Green Eng. 1(4), 447–475 (2011)

    Google Scholar 

  17. Stoddart, B., Lynas, R., Zeyda, F.: A virtual machine for supporting reversible probabilistic guarded command languages. Electron. Notes Theoret. Comput. Sci. 253(6), 33–56 (2010)

    Article  Google Scholar 

  18. Thomsen, M.K., Axelsen, H.B., Glück, R.: A reversible processor architecture and its reversible logic design. In: Vos, A., Wille, R. (eds.) RC 2011. LNCS, vol. 7165, pp. 30–42. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  19. Vieri, C., Ammer, M.J., Frank, M., Margolus, N., Knight, T.: A fully reversible asymptotically zero energy microprocessor. In: Power Driven Microarchitecture Workshop, pp. 138–142. Citeseer (1998)

    Google Scholar 

  20. Vieri, C.J.: Reversible computer engineering and architecture. Ph.D. thesis, Massachusetts Institute of Technology (1999)

    Google Scholar 

  21. Yokoyama, T.: Reversible computation and reversible programming languages. Electron. Notes Theoret. Comput. Sci. 253(6), 71–81 (2010)

    Article  Google Scholar 

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

    Google Scholar 

  23. Yokoyama, T., Glück, R.: A reversible programming language and its invertible self-interpreter. In: Proceedings of 2007 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-based Program Manipulation, pp. 144–153. ACM (2007)

    Google Scholar 

  24. Zuliani, P.: Logical reversibility. IBM J. Res. Dev. 45(6), 807–818 (2001)

    Article  Google Scholar 

Download references

Acknowledgements

We thank Geronimo Mirano for useful discussion in differentiating and developing our language levels. We also thank Maria L. Messick and Licheng Rao for help in early programming of the Eel compiler.

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to Nirvan Tyagi , Jayson Lynch or Erik D. Demaine .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing Switzerland

About this paper

Cite this paper

Tyagi, N., Lynch, J., Demaine, E.D. (2016). Toward an Energy Efficient Language and Compiler for (Partially) Reversible Algorithms. In: Devitt, S., Lanese, I. (eds) Reversible Computation. RC 2016. Lecture Notes in Computer Science(), vol 9720. Springer, Cham. https://doi.org/10.1007/978-3-319-40578-0_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-40578-0_8

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-40577-3

  • Online ISBN: 978-3-319-40578-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics