Quipper: a scalable quantum programming language

  title={Quipper: a scalable quantum programming language},
  author={Alexander S. Green and Peter LeFanu Lumsdaine and Neil J. Ross and Peter Selinger and Beno{\^i}t Valiron},
  journal={Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation},
  • A. S. Green, P. Lumsdaine, B. Valiron
  • Published 11 April 2013
  • Computer Science, Physics
  • Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation
The 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… 

Figures from this paper

Q|SI〉: A Quantum Programming Environment

A platform embedded in the .Net language that supports quantum programming using a quantum extension of the while-language and a suite of tools for simulating quantum computation, optimizing quantum circuits, and analyzing and verifying quantum programs is described.

Quantum Programming Languages

The ideal time to explore quantum programming language designs is now, before a quantum computer has been realized, so that when a quantumComputer is actually built the authors will be able to take full advantage of its resources.

Quantum programming made easy

It is shown that IQu is quite effective in expressing well-known quantum algorithms, and mildly merges its quantum features with the classical programming style that the authors can experiment through Idealized Algol, the aim being to ease a transition towards the quantum programming world.

Programming quantum computers using design automation

The challenges in fully-automatic quantum compilation are discussed and how to automatically perform the quantum programming flow from algorithm to a physical quantum computer for a simple algorithmic benchmark, namely the hidden shift problem is demonstrated.

Qumin, a minimalist quantum programming language

This work describes both the language's theoretical foundations in terms of lambda calculi and linear type systems, and more practical matters such as implementations of algorithms and useful programming tools that streamline the interaction of the classical and quantum fragments of a program.

Verifying Quantum Programs: From Quipper to QPMC

A translation from the quantum programming language Quipper to the QPMC model checker, allowing to formally verify properties specified in the temporal logic QCTL on Quantum Markov Chains.

Formal Methods for Quantum Programs: A Survey

This work reviews the induced challenges for ancient use of formal methods in quantum computing and the current most promising research directions, and proposes solutions for problems occurring at every stage of the development process: high-level program design, implementation, compilation, etc.

Programming Quantum Computers Using Design Automation ( Executive Session Paper )

The challenges in fully-automatic quantum compilation are discussed and how to automatically perform the quantum programming flow from algorithm to a physical quantum computer for a simple algorithmic benchmark, namely the hidden shift problem is demonstrated.

Simulating Quantum Computers Using OpenCL

A tool which uses OpenCL to parallelize quantum circuits simulation, thereby taking advantage of devices such as GPUs while still remaining portable and leading to a new approach that outperforms other popular state vector based simulators.

Quipper: Concrete Resource Estimation in Quantum Algorithms

This work designed a language, Q uipper, with scalability in mind, and is able to report actual resource counts for seven non-trivial algorithms found in the quantum computer science literature.



The Quantum IO Monad

The Quantum IO monad is a purely functional interface to quantum programming implemented as a Haskell library that provides a constructive semantics of quantum programming and presents a complete implementation of Shor’s algorithm.

Quantum Computation and Quantum Information (10th Anniversary edition)

Containing a wealth of figures and exercises, this well-known textbook is ideal for courses on the subject, and will interest beginning graduate students and researchers in physics, computer science, mathematics, and electrical engineering.

Simulation of electronic structure Hamiltonians using quantum computers

Over the last century, a large number of physical and mathematical developments paired with rapidly advancing technology have allowed the field of quantum chemistry to advance dramatically. However,

Quantum programming languages: survey and bibliography

  • S. Gay
  • Computer Science
    Mathematical Structures in Computer Science
  • 2006
The study of quantum Programming languages is justified, the basics of quantum computing are presented, the literature in quantum programming languages is surveyed, and directions for future research are indicated.

Quantum lambda calculus

This chapter discusses how to combine higher-order functions with quantum computation, and investigates the interplay between classical objects and quantum objects in a higherorder context.

Conventions for Quantum Pseudocode

A few conventions for thinking about and writing quantum pseu-docode are proposed. The conventions can be used for presenting any quantum algorithm down to the lowest level and are consistent with a

Algorithms for quantum computation: discrete logarithms and factoring

  • P. Shor
  • Computer Science
    Proceedings 35th Annual Symposium on Foundations of Computer Science
  • 1994
Las Vegas algorithms for finding discrete logarithms and factoring integers on a quantum computer that take a number of steps which is polynomial in the input size, e.g., the number of digits of the integer to be factored are given.

A lambda calculus for quantum computation with classical control

A functional programming language for quantum computers by extending the simply-typed lambda calculus with quantum types and operations, and gives a type system using affine intuitionistic linear logic.

A Lambda Calculus for Quantum Computation

A quantum lambda calculus is developed as an alternative model of quantum computation, which combines some of the benefits of both the quantum Turing machine and the quantum circuit models and it is argued that it is equivalent to the Quantum Turing machine.

Quantum computation and quantum information

  • T. Paul
  • Physics
    Mathematical Structures in Computer Science
  • 2007
This special issue of Mathematical Structures in Computer Science contains several contributions related to the modern field of Quantum Information and Quantum Computing. The first two papers deal