Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Programming the quantum future
Valiron B., Ross N., Selinger P., Alexander D., Smith J. Communications of the ACM58 (8):52-61,2015.Type:Article
Date Reviewed: Nov 17 2015

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.

Reviewer:  Hector Antonio Villa-Martinez Review #: CR143959 (1601-0050)
Bookmark and Share
  Reviewer Selected
Types And Design Styles (B.7.1 )
General (C.1.0 )
General (B.8.0 )
General (D.3.0 )
Language Classifications (D.3.2 )
Models Of Computation (F.1.1 )
Would you recommend this review?
Other reviews under "Types And Design Styles": Date
How circuits work
de Kleer J. (ed) Artificial Intelligence 24(1-3): 205-280, 1984. Type: Article
Sep 1 1985
Gate arrays: design techniques and applications
Read J. (ed), McGraw-Hill, Inc., New York, NY, 1985. Type: Book (9789780070512863)
Apr 1 1986
A heuristic for suffix solutions
Bilgory A., Gajski D. IEEE Transactions on Computers 35(1): 34-42, 1986. Type: Article
Aug 1 1986

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy