An Introduction to Quantum Programming in Quipper

Quipper is a recently developed programming language for expressing quantum computations. This paper gives a brief tutorial introduction to the language, through a demonstration of how to make use of some of its key features. We illustrate many of Quipper's language features by developing a few well known examples of Quantum computation, including quantum teleportation, the quantum Fourier transform, and a quantum circuit for addition.

[1]  Martin Grohe The complexity of homomorphism and constraint satisfaction problems seen from the other side , 2007, JACM.

[2]  Daniel A. Spielman,et al.  Exponential algorithmic speedup by a quantum walk , 2002, STOC '03.

[3]  Andris Ambainis,et al.  Any AND-OR Formula of Size N can be Evaluated in time N^{1/2 + o(1)} on a Quantum Computer , 2010, 48th Annual IEEE Symposium on Foundations of Computer Science (FOCS'07).

[4]  Thomas G. Draper Addition on a Quantum Computer , 2000, quant-ph/0008033.

[5]  Frédéric Magniez,et al.  An $O(n^{1.3})$ Quantum Algorithm for the Triangle Problem , 2003 .

[6]  Bernhard Ömer,et al.  A Procedural Formalism for Quantum Computing , 2002 .

[7]  Koen Claessen Embedded Languages for Describing and Verifying Hardware , 2001 .

[8]  S. Aaronson,et al.  Improved simulation of stabilizer circuits (14 pages) , 2004 .

[9]  J GaySimon,et al.  Quantum programming languages: survey and bibliography , 2006 .

[10]  Scott Aaronson,et al.  Improved Simulation of Stabilizer Circuits , 2004, ArXiv.

[11]  Benoît Valiron,et al.  Quipper: a scalable quantum programming language , 2013, PLDI.

[12]  Thierry Paul,et al.  Quantum computation and quantum information , 2007, Mathematical Structures in Computer Science.

[13]  Ian Mackie,et al.  Semantic Techniques in Quantum Computation , 2009 .

[14]  Simon J. Gay,et al.  Quantum Programming Languages Survey and Bibliography , 2006 .

[15]  Mary Sheeran,et al.  Lava: hardware design in Haskell , 1998, ICFP '98.

[16]  J. Whitfield,et al.  Simulation of electronic structure Hamiltonians using quantum computers , 2010, 1001.3855.

[17]  Oded Regev,et al.  Quantum computation and lattice problems , 2002, The 43rd Annual IEEE Symposium on Foundations of Computer Science, 2002. Proceedings..

[18]  Frédéric Magniez,et al.  Quantum algorithms for the triangle problem , 2005, SODA '05.

[19]  A. Harrow,et al.  Quantum algorithm for linear systems of equations. , 2008, Physical review letters.

[20]  Isaac L. Chuang,et al.  Quantum Computation and Quantum Information (10th Anniversary edition) , 2011 .

[21]  Andris Ambainis,et al.  Any AND-OR Formula of Size N Can Be Evaluated in Time N1/2+o(1) on a Quantum Computer , 2010, SIAM J. Comput..

[22]  Thorsten Altenkirch,et al.  The Quantum IO Monad , 2006 .