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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
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)
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)
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
Charles, H.: Bennett. time/space trade-offs for reversible computation. SIAM J. Comput. 18(4), 766–776 (1989)
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)
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)
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)
Landauer, R.: Irreversibility and heat generation in the computing process. IBM J. Res. Dev. 5(3), 183–191 (1961)
Lange, K.-J., McKenzie, P., Tapp, A.: Reversible space equals deterministic space. J. Comput. Syst. Sci. 60(2), 354–367 (2000)
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)
Li, M., Vitanyi, P.: Reversible simulation of irreversible computation. In: Proceedings of 11th Annual IEEE Conference on Computational Complexity, pp. 301–306. IEEE (1996)
Lutz, C., Derby, H.: Janus: a time-reversible language. Caltech Class Project (1982)
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)
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)
Perumalla, K., Fujimoto, R.: Source code transformations for efficient reversibility. Coll. Comput. Georgia Inst. Technol. (1999). https://smartech.gatech.edu/handle/1853/6621
Somavat, P., Namboodiri, V., et al.: Energy consumption of personal computing including portable communication devices. J. Green Eng. 1(4), 447–475 (2011)
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)
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)
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)
Vieri, C.J.: Reversible computer engineering and architecture. Ph.D. thesis, Massachusetts Institute of Technology (1999)
Yokoyama, T.: Reversible computation and reversible programming languages. Electron. Notes Theoret. Comput. Sci. 253(6), 71–81 (2010)
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)
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)
Zuliani, P.: Logical reversibility. IBM J. Res. Dev. 45(6), 807–818 (2001)
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
Corresponding authors
Editor information
Editors and Affiliations
Rights 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)