Skip to main content

Generating Reversible Circuits from Higher-Order Functional Programs

  • 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:

Abstract

Boolean reversible circuits are boolean circuits made of reversible elementary gates. Despite their constrained form, they can simulate any boolean function. The synthesis and validation of a reversible circuit simulating a given function is a difficult problem. In 1973, Bennett proposed to generate reversible circuits from traces of execution of Turing machines. In this paper, we propose a novel presentation of this approach, adapted to higher-order programs. Starting with a PCF-like language, we use a monadic representation of the trace of execution to turn a regular boolean program into a circuit-generating code. We show that a circuit traced out of a program computes the same boolean function as the original program. This technique has been successfully applied to generate large oracles with the quantum programming language Quipper.

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

References

  1. Abramsky, S.: A structural approach to reversible computation. Theor. Comput. Sci. 347(3), 441–464 (2005)

    Article  MathSciNet  MATH  Google Scholar 

  2. Ambainis, A., Childs, A.M., et al.: Any AND-OR formula of size \(n\) can be evaluated in time \(n^{\frac{1}{2}+o(1)}\) on a quantum computer. SIAM J. Comput. 39, 2513–2530 (2010)

    Article  MathSciNet  MATH  Google Scholar 

  3. Bennett, C.H.: Logical reversibility of computation. IBM J. Res. Dev. 17, 525–532 (1973)

    Article  MathSciNet  MATH  Google Scholar 

  4. Berry, G.: The foundations of esterel. In: Proof, Language, and Interaction, Essays in Honour of Robin Milner. MIT Press, Cambridge (2000)

    Google Scholar 

  5. Braibant, T., Chlipala, A.: Formal verification of hardware synthesis. In: Sharygina, N., Veith, H. (eds.) CAV 2013. LNCS, vol. 8044, pp. 213–228. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  6. Claessen, K.: Embedded languages for describing and verifying hardware. Ph.D. thesis, Chalmers University of Technology and Göteborg University (2001)

    Google Scholar 

  7. Fazel, K., Thornton, M.A., Rice, J.E.: ESOP-based Toffoli gate cascade generation. In: Proceedings of PacRim, pp. 206–209 (2007)

    Google Scholar 

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

    Article  Google Scholar 

  9. Ghica, D.R.: Geometry of synthesis. In: Proceedings of POPL, pp. 363–375 (2007)

    Google Scholar 

  10. Girard, J.-Y.: Towards a geometry of interaction. Contemp. Math. 92, 69–108 (1989)

    Article  MathSciNet  Google Scholar 

  11. Green, A.S., Lumsdaine, P.L., et al.: Quipper: a scalable quantum programming language. In: Proceedings of PLDI, pp. 333–342 (2013)

    Google Scholar 

  12. Gupta, P., Agrawal, A., Jha, N.K.: An algorithm for synthesis of reversible logic circuits. IEEE Trans. CAD Int. Circ. Syst. 25(11), 2317–2330 (2006)

    Article  Google Scholar 

  13. Harrow, A.W., Hassidim, A., Lloyd, S.: Quantum algorithm for linear systems of equations. Phys. Rev. Lett. 103(15), 150–502 (2009)

    Article  MathSciNet  Google Scholar 

  14. James, R.P., Sabry, A.: Information effects. In: Proceedings of POPL, pp. 73–84 (2012)

    Google Scholar 

  15. Kluge, W.: A reversible SE(M)CD machine. IFL’99. LNCS, vol. 1868, pp. 95–113. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  16. Laundauer, R.: Irreversibility and heat generation in the computing process. IBM J. Res. Dev. 5, 261–269 (1961)

    Article  MathSciNet  Google Scholar 

  17. Magniez, F., Santha, M., Szegedy, M.: Quantum algorithms for the triangle problem. SIAM J. Comput. 37(2), 413–424 (2007)

    Article  MathSciNet  MATH  Google Scholar 

  18. Maslov, D., Dueck, G W., Miller, D.M.: Fredkin/Toffoli templates for reversible logic synthesis. In: Proceedings of ICCAD, pp. 256–261 (2003)

    Google Scholar 

  19. Nielsen, M.A., Chuang, I.L.: Quantum Computation and Quantum Information. Cambridge Univ. Press, Cambridge (2002)

    MATH  Google Scholar 

  20. Nikhil, R.S.: Bluespec: a general-purpose approach to high-level synthesis based on parallel atomic transactions. In: Coussy, P., Morawiec, A. (eds.) High-Level Synthesis, pp. 129–146. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  21. Parent, A., Roetteler, M., Svore, K.M.: Reversible circuit compilation with space constraints. arXiv:1510.00377 (2015)

  22. Park, S., Kim, J., Im, H.: Functional netlists. In: Proceedings of ICFP, pp. 353–366 (2008)

    Google Scholar 

  23. Quipper. http://www.mathstat.dal.ca/~selinger/quipper/

  24. Saeedi, M., Markov, I.L.: Synthesis and optimization of reversible circuits - a survey. ACM Comput. Surv. 45(2), 21:1–21:34 (2013)

    Article  MATH  Google Scholar 

  25. Sanaee, Y., Saeedi, M., Zamani, M.S.:Shared-PPRM: a memory-efficient representation for boolean reversiblefunctions. In: Proceedings of ISVLSI, pp. 471–474 (2008)

    Google Scholar 

  26. Sander, I.: System modeling and design refinement in ForSyDe. Ph.D. thesis, Royal Institute of Technology, Stockholm, Sweden (2003)

    Google Scholar 

  27. Scherer, A., Valiron, B., et al.: Resource analysis of the quantum linear system algorithm. arxiv:1505.06552 (2015)

  28. Shor, P.: Algorithms for quantum computation: discrete logarithm and factoring. In: Proceedings of FOCS (1994)

    Google Scholar 

  29. Soeken, M., Frehse, S., Wille, R., Drechsler, R.: RevKit: an open source toolkit for the design of reversible circuits. In: De Vos, A., Wille, R. (eds.) RC 2011. LNCS, vol. 7165, pp. 64–76. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  30. Green, A.S., Lumsdaine, P.L.F., Ross, N.J., Selinger, P., Valiron, B.: White dots do matter: rewriting reversible logic circuits. In: Dueck, G.W., Miller, D.M. (eds.) RC 2013. LNCS, vol. 7948, pp. 196–208. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  31. Swamy, N., Guts, N., et al.: Lightweight monadic programming in ML. In: Proceedings of ICFP, pp. 15–27 (2011)

    Google Scholar 

  32. Terui, K.: Proof nets and boolean circuits. In: Proceedings of LICS, pp. 182–191 (2004)

    Google Scholar 

  33. Thomsen, M.K.: A functional language for describing reversible logic. In: Proceedings of FDL, pp. 135–142 (2012)

    Google Scholar 

  34. Wille, R., Große, D., et al.: RevLib: an online resource for reversible functions and reversible circuits. In: International Symposium on Multi-valued Logic, pp. 220–225 (2008)

    Google Scholar 

  35. Wille, R., Le, H.M., Dueck, G.W., Grosse, D.: Quantified synthesis of reversible logic. In: Proceedings of DATE, pp. 1015–1020 (2008)

    Google Scholar 

  36. Wille, R., Offermann, S., Drechsler, R.:SyReC: a programming language for synthesis of reversible circuits. In: Forum on Specification Design Languages, pp. 1–6 (2010)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Benoît Valiron .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing Switzerland

About this paper

Cite this paper

Valiron, B. (2016). Generating Reversible Circuits from Higher-Order Functional Programs. 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_21

Download citation

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

  • 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