Skip to main content

Describing and Optimising Reversible Logic Using a Functional Language

  • Conference paper
Implementation and Application of Functional Languages (IFL 2011)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 7257))

Abstract

This paper presents the design of a language for the description and optimisation of reversible logic circuits. The language is a combinator-style functional language designed to be close to the reversible logical gate-level. The combinators include high-level constructs such as ripples, but also the recognisable inversion combinator f −1, which defines the inverse function of f using an efficient semantics.

It is important to ensure that all circuits descriptions are reversible, and furthermore we must require this to be done statically. This is ensured by the type system, which also allows the description of arbitrary sized circuits. The combination of the functional language and the restricted reversible model results in many arithmetic laws, which provide more possibilities for term rewriting and, thus, the opportunity for good optimisation.

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. Altenkirch, T., Grattage, J.: A functional quantum programming language. In: Proceedings of 20th Annual IEEE Symposium on Logic in Computer Science, LICS 2005, pp. 249–258. IEEE (2005)

    Google Scholar 

  2. Athas, W.C., Svensson, L.: Reversible logic issues in adiabatic CMOS. In: Workshop on Physics and Computation (1994)

    Google Scholar 

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

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

  5. Backus, J.: Can programming be liberated from the von Neumann style? A functional style and its algebra of programs. Communications of the ACM 21, 613–641 (1978)

    Google Scholar 

  6. Barenco, A., Bennett, C.H., Cleve, R., DiVincenzo, D.P., Margolus, N., Shor, P., Sleator, T., Smolin, J.A., Weinfurter, H.: Elementary gates for quantum computation. Physical Review A 52(5), 3457–3467 (1995)

    Article  Google Scholar 

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

    Article  MATH  Google Scholar 

  8. Berut, A., Arakelyan, A., Petrosyan, A., Ciliberto, S., Dillenschneider, R., Lutz, E.: Experimental verification of landauer/’s principle linking information and thermodynamics. Nature 483(7388), 187–189 (2012)

    Article  Google Scholar 

  9. Brent, R., Kung, H.: A Regular Layout for Parallel Adders. IEEE Transactions on Computers C-31(3), 260–264 (1982)

    Article  MathSciNet  Google Scholar 

  10. Burignat, S., Thomsen, M.K., Klimczak, M., Olczak, M., De Vos, A.: Interfacing Reversible Pass-Transistor CMOS Chips with Conventional Restoring CMOS Circuits. In: De Vos, A., Wille, R. (eds.) RC 2011. LNCS, vol. 7165, pp. 112–122. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  11. Cuccaro, S.A., Draper, T.G., Kutin, S.A., Moulton, D.P.: A new quantum ripple-carry addition circuit. arXiv:quant-ph/0410184v1 (2005)

    Google Scholar 

  12. Cuykendall, R., Andersen, D.R.: Reversible optical computing circuits. Optics Letters 12(7), 542–544 (1987)

    Article  Google Scholar 

  13. Daubechies, I., Sweldens, W.: Factoring wavelet transforms into lifting steps. Journal of Fourier Analysis and Applications 4(3), 247–269 (1998)

    Article  MathSciNet  MATH  Google Scholar 

  14. De Vos, A.: Reversible computing. Progress in Quantum Electronics 23(1), 1–49 (1999)

    Article  MathSciNet  Google Scholar 

  15. De Vos, A., Burignat, S., Thomsen, M.K.: Reversible implementation of a descrete integer linear transform. Journal of Multiple-Valued Logic and Soft Computing, Special Issue: Reversible Computation 18(1), 25–35 (2012)

    MATH  Google Scholar 

  16. De Vos, A., Van Rentergem, Y.: Reversible computing: from mathematical group theory to electronical circuit experiment. In: Computing Frontiers Proceeding, pp. 35–44. ACM Press (2005)

    Google Scholar 

  17. Feynman, R.P.: Quantum mechanical computers. Optical News 11, 11–20 (1985)

    Article  Google Scholar 

  18. Fredkin, E., Toffoli, T.: Conservative logic. International Journal of Theoretical Physics 21(3-4), 219–253 (1982)

    Article  MathSciNet  MATH  Google Scholar 

  19. Gershenfeld, N.: Signal entropy and the thermodynamics of computation. IBM Systems Journal 35(3-4), 577–586 (1996)

    Article  Google Scholar 

  20. Koller, J.G., Athas, W.C.: Adiabatic switching, low energy computing, and the physics of storing and erasing information. In: Workshop on Physics and Computation, pp. 267–270 (1992)

    Google Scholar 

  21. Landauer, R.: Irreversibility and heat generation in the computing process. IBM Journal of Research and Development 5(3), 183–191 (1961)

    Article  MathSciNet  MATH  Google Scholar 

  22. Lutz, C.: Janus: A time-reversible language. A letter to R. Landauer (1986), http://tetsuo.jp/ref/janus.pdf

  23. Malvar, H.S., Hallapuro, A., Karczewicz, M., Kerofsky, L.: Low-complexity transform and quantization in H. 264/AVC. IEEE Transactions on Circuits and Systems for Video Technology 13(7), 598–603 (2003)

    Article  Google Scholar 

  24. Merkle, R.C.: Reversible electronic logic using switches. Nanotechnology 4(1), 21–40 (1993)

    Article  Google Scholar 

  25. Morita, K.: A Simple Universal Logic Element and Cellular Automata for Reversible Computing. In: Margenstern, M., Rogozhin, Y. (eds.) MCU 2001. LNCS, vol. 2055, pp. 102–113. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  26. Nielsen, M., Chuang, I.L.: Quantum Computation and Quantum Information. Cambridge University Press (2000)

    Google Scholar 

  27. Patra, P., Fussell, D.: On efficient adiabatic design of MOS circuits. In: Workshop on Physics and Computation, pp. 260–269 (1996)

    Google Scholar 

  28. Sheeran, M.: muFP, A language for VLSI design. In: Proceedings of the 1984 ACM Symposium on LISP and Functional Programming, LFP 1984, pp. 104–112. ACM (1984)

    Google Scholar 

  29. Sheeran, M.: Hardware design and functional programming: a perfect match. Journal of Universal Computer Science 11(7), 1135–1158 (2005)

    Google Scholar 

  30. Thomsen, M.K., Axelsen, H.B.: Parallelization of reversible ripple-carry adders. Parallel Processing Letters 19(1), 205–222 (2009)

    Article  MathSciNet  Google Scholar 

  31. Thomsen, M.K., Glück, R., Axelsen, H.B.: Reversible arithmetic logic unit for quantum arithmetic. Journal of Physics A: Mathematical and Theoretical 43(38), 382002 (2010)

    Article  MathSciNet  Google Scholar 

  32. Toffoli, T.: Reversible Computing. In: de Bakker, J.W., van Leeuwen, J. (eds.) ICALP 1980. LNCS, vol. 85, pp. 632–644. Springer, Heidelberg (1980)

    Chapter  Google Scholar 

  33. Vedral, V., Barenco, A., Ekert, A.: Quantum networks for elementary arithmetic operations. Physical Review A 54(1), 147–153 (1996)

    Article  MathSciNet  Google Scholar 

  34. Wille, R., Drechsler, R.: Towards a Design Flow for Reversible Logic. Springer Science (2010)

    Google Scholar 

  35. Wille, R., Offermann, S., Drechsler, R.: SyReC: A programming language for synthesis of reversible circuits. In: Proceedings of the Forum on Specification & Design Languages, pp. 1–6. IET, Southhampton (2010)

    Google Scholar 

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

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

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Thomsen, M.K. (2012). Describing and Optimising Reversible Logic Using a Functional Language. In: Gill, A., Hage, J. (eds) Implementation and Application of Functional Languages. IFL 2011. Lecture Notes in Computer Science, vol 7257. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-34407-7_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-34407-7_10

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-34406-0

  • Online ISBN: 978-3-642-34407-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics