Programming Your Quantum Computer
The hardware doesn’t yet exist, but languages for quantum coding are ready to go.
What to Compute
Languages such as QCL and Quipper may well solve the problem of how to write programs for quantum computers. There remains the question of what programs to write. Stephen Jordan of the National Institutes of Standards and Technology maintains a “Quantum Algorithm Zoo” (http://math.nist.gov/quantum/zoo/); it lists 50 problems that have interesting quantum solutions. That is not a large number, although some of the individual problems could have many applications. One example that covers a broad spectrum is the use of quantum computation to simulate quantum physics. This is where the whole field began, with a suggestion 30 years ago by Richard Feynman.
Of course all these questions remain academic until reliable, full-scale quantum computers become available. A company called D-Wave offers machines with up to 512 superconducting qubits, but the architecture of that device is not suited to running the kinds of programs generated by QCL and Quipper; indeed, there’s controversy over whether the D-Wave machine should be called a quantum computer at all. For technologies that can implement quantum circuits with controlled interference and entanglement, the state of the art is roughly a dozen qubits. With those resources, Shor’s algorithm can factor the number 21. Much work remains to be done before my kiloqubit laptop arrives in 2024.
- Bacon, D., and W. van Dam. 2010. Recent progress in quantum algorithms. Communications of the ACM 53(2):84–93.
- Green, A. S., P. L. Lumsdaine, N. J. Ross, P. Selinger, and B. Valiron. 2013. Quipper: A scalable quantum programming language. ACM SIGPLAN Notices 48(6):333–342.
- Green, A. S., P. L. Lumsdaine, N. J. Ross, P. Selinger, and B. Valiron. 2013. An introduction to quantum programming in Quipper. In Proceedings of the 5th Conference on Reversible Computation, Victoria, Canada, pp. 110–124.
- Ömer, B. 2003. Structured Quantum Programming. Doctoral dissertation, Vienna University of Technology. http://tph.tuwien.ac.at/~oemer/doc/structquprog.pdf.