skip to main content
research-article
Free Access

Programming the quantum future

Published:23 July 2015Publication History
Skip Abstract Section

Abstract

The Quipper language offers a unified general-purpose programming framework for quantum computation.

References

  1. Ambainis, A., Childs, A.M., Reichardt, B.W., Špalek, R., and Zhang, S. Any AND-OR formula of size N can be evaluated in time N1/2+o(1) on a quantum computer. SIAM Journal on Computing 39, 2 (2010), 2513--2530. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Bettelli, S., Calarco, T., and Serafini, L. Toward an architecture for quantum programming. The European Physical Journal D 25, 2 (2003), 181--200.Google ScholarGoogle ScholarCross RefCross Ref
  3. Burham, H., Durr, C., Heiligman, M., Hoyer, P., Magniez, F., Santha, M., and de Wolf, R. Quantum algorithms for element distinctness. In Proceedings of the 16th Annual IEEE Conference on Computational Complexity (Chicago, June 18--21). IEEE Computer Society Press, 2001, 131--137. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Childs, A. M., Cleve, R., Deotto, E., Farhi, E., Gutmann, S., and Spielman, D.A. Exponential algorithmic speedup by a quantum walk. In Proceedings of the 35th Annual ACM Symposium on Theory of Computing (San Diego, CA, June 9--11). ACM Press, New York, 2003, 59--68. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Gay, S.J. Quantum programming languages: Survey and bibliography. Mathematical Structures in Computer Science 16, 4 (2006), 581--600. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Gill, A. Domain-specific languages and code synthesis using Haskell. Commun. ACM 57, 6 (June 2014), 42--49. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Green, A. and Altenkirch, T. The quantum IO monad. In Semantic Techniques in Quantum Computation, S. Gay and I. Mackie, Eds. Cambridge University Press, Cambridge, U.K., 2009, 173--205.Google ScholarGoogle Scholar
  8. Hallgren, S. Polynomial-time quantum algorithms for Pell's equation and the principal ideal problem. Journal of the ACM 54, 1 (Mar. 2007), 4:1--4:19. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Harrow, A.W., Hassidim, A., and Lloyd, S. Quantum algorithm for solving linear systems of equations. Physical Review Letters 103, 15 (Oct. 2009), 150502-1--150502-4.Google ScholarGoogle ScholarCross RefCross Ref
  10. IARPA Quantum Computer Science Program. Broad Agency Announcement IARPA-BAA-10-02, Apr. 2010; https://www.fbo.gov/notices/637e87ac1274d030ce2ab69339ccf93cGoogle ScholarGoogle Scholar
  11. Knill, E.H. Conventions for Quantum Pseudocode. Technical Report LAUR-96-2724. Los Alamos National Laboratory, Los Alamos, NM, 1996.Google ScholarGoogle ScholarCross RefCross Ref
  12. Magniez, F., Santha, M., and Szegedy, M. Quantum algorithms for the triangle problem. SIAM Journal on Computing 37, 2 (2007), 413--424. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Meter, R.V. and Horsman, C. A blueprint for building a quantum computer. Commun. ACM 56, 10 (Oct. 2013), 84--93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Ömer, B. Quantum Programming in QCL. Master's Thesis. Institute of Information Systems, Technical University of Vienna, Vienna, Austria, 2000; tph.tuwien.ac.at/~oemer/qcl.htmlGoogle ScholarGoogle Scholar
  15. Regev, O. Quantum computation and lattice problems. SIAM Journal on Computing 33, 3 (2004), 738--760. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Sanders, J.W. and Zuliani, P. Quantum programming. In Proceedings of the Fifth International Conference on Mathematics of Program Construction, Vol. 1837 of Lecture Notes in Computer Science (Ponte de Lima, Portugal, July 3--5). Springer-Verlag, Berlin Heidelberg, 2000, 80--99. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Selinger, P. and Valiron, B. A lambda calculus for quantum computation with classical control. Mathematical Structures in Computer Science 16, 3 (2006), 527--552. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. van Tonder, A. A lambda calculus for quantum computation. SIAM Journal of Computation 33, 5 (2004), 1109--1135. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Whitfield, J.D., Biamonte, J., and Aspuru-Guzik, A. Simulation of electronic structure Hamiltonians using quantum computers. Molecular Physics 109, 5 (Mar. 2011), 735--750.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Programming the quantum future

                      Recommendations

                      Reviews

                      Hector A. Villa-Martinez

                      In a digital computer, the basic unit of information is the bit, or binary digit. A bit can only take one of two values: zero or one. On the other hand, in a quantum computer, the basic unit of information is the quantum bit, or qubit. And unlike the classical bit, the value of a qubit can simultaneously be zero and one with a certain probability associated with each value, a phenomenon known as a superposition of states. Although in theory, a quantum computer will not be able to solve problems that cannot be solved in a digital computer, the characteristics of quantum systems, such as overlapping states and action at a distance, promise that quantum computers, when they get built, will be much faster than digital computers. In addition to the hardware challenges of building a quantum computer, from a software point of view the design of the programming languages that will be used on these computers is an open question; this is the problem approached here. The article begins by describing a hypothetical quantum architecture in which a quantum computer functions as a coprocessor controlled by a classical computer (that is, a traditional digital computer). Then, the authors present the main techniques employed to describe quantum algorithms and the basic requirements of quantum programming languages. Finally, there is a brief overview of other quantum languages. Then Quipper, a functional programming language for quantum computing, is presented. Quipper is a deeply embedded domain-specific language (EDSL) inside the host language Haskell; among the main features of the language are its hardware independence and its extensible data types. The authors describe their experiences using Quipper, claiming they have been able to implement seven quantum algorithms. Finally, they show as an example two subroutines written in Quipper. In conclusion, thanks to the authors' approachable writing, this article makes entertaining and instructive reading for those interested in the subject of quantum computing. Online Computing Reviews Service

                      Access critical reviews of Computing literature here

                      Become a reviewer for Computing Reviews.

                      Comments

                      Login options

                      Check if you have access through your login credentials or your institution to get full access on this article.

                      Sign in

                      Full Access

                      • Published in

                        cover image Communications of the ACM
                        Communications of the ACM  Volume 58, Issue 8
                        August 2015
                        88 pages
                        ISSN:0001-0782
                        EISSN:1557-7317
                        DOI:10.1145/2808213
                        • Editor:
                        • Moshe Y. Vardi
                        Issue’s Table of Contents

                        Copyright © 2015 ACM

                        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

                        Publisher

                        Association for Computing Machinery

                        New York, NY, United States

                        Publication History

                        • Published: 23 July 2015

                        Permissions

                        Request permissions about this article.

                        Request Permissions

                        Check for updates

                        Qualifiers

                        • research-article
                        • Popular
                        • Refereed

                      PDF Format

                      View or Download as a PDF file.

                      PDFChinese translation

                      eReader

                      View online with eReader.

                      eReader

                      HTML Format

                      View this article in HTML Format .

                      View HTML Format