Despite the rich literature on quantum algorithms, there is a surprisingly small amount of coverage of their concrete logical design and implementation. Most resource estimation is done at the level of complexity analysis, but actual concrete numbers (of quantum gates, qubits, etc.) can differ by orders of magnitude. The line of work we present here is a formal framework to write, and reason about, quantum algorithms. Specifically, we designed a language, Quipper, with scalability in mind, and we are able to report actual resource counts for seven non-trivial algorithms found in the quantum computer science literature.

1 aSmith, Jonathan, M.1 aRoss, Neil, J.1 aSelinger, Peter1 aValiron, Benoît uhttp://arxiv.org/abs/1412.0625v101002nas a2200193 4500008004100000020002200041245005400063210005100117260001500168300001200183490000900195520045300204100002500657700002900682700001900711700002000730700002100750856003700771 2013 eng d a978-3-642-38986-300aAn Introduction to Quantum Programming in Quipper0 aIntroduction to Quantum Programming in Quipper c2013/07/05 a110-1240 v79483 a 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 aGreen, Alexander, S.1 aLumsdaine, Peter, LeFanu1 aRoss, Neil, J.1 aSelinger, Peter1 aValiron, Benoît uhttp://arxiv.org/abs/1304.5485v101302nas a2200181 4500008004100000245005300041210005200094260001500146300001200161490000700173520078900180100002500969700002900994700001901023700002001042700002101062856003701083 2013 eng d00aQuipper: A Scalable Quantum Programming Language0 aQuipper A Scalable Quantum Programming Language c2013/06/23 a333-3420 v483 aThe field of quantum algorithms is vibrant. Still, there is currently a lack of programming languages for describing quantum computation on a practical scale, i.e., not just at the level of toy problems. We address this issue by introducing Quipper, a scalable, expressive, functional, higher-order quantum programming language. Quipper has been used to program a diverse set of non-trivial quantum algorithms, and can generate quantum gate representations using trillions of gates. It is geared towards a model of computation that uses a classical computer to control a quantum device, but is not dependent on any particular model of quantum hardware. Quipper has proven effective and easy to use, and opens the door towards using formal methods to analyze quantum algorithms.

1 aGreen, Alexander, S.1 aLumsdaine, Peter, LeFanu1 aRoss, Neil, J.1 aSelinger, Peter1 aValiron, Benoît uhttp://arxiv.org/abs/1304.3390v1