Dear Haskellers,
we are proud to announce the first public release of Quipper, an
embedded, scalable functional programming language for quantum
computing. The Quipper distribution is available here:
http://www.mathstat.dal.ca/~selinger/quipper/and includes extensive documentation, as well as seven worked examples
of non-trivial quantum algorithms from the literature.
Quipper is embedded in Haskell and makes use of many advanced
features of the GHC Glasgow Haskell Compiler. Here are some highlights:
* High-level circuit description language, including both gate-by-gate
descriptions and powerful higher-order operators for assembling and
manipulating circuits.
* A monadic semantics, allowing for a mixture of procedural and
declarative programming styles.
* Built-in facilities for automatic synthesis of reversible quantum
circuits, including from classical Haskell code.
* Support for hierarchical circuits.
* Extensible quantum data types.
* Programmable circuit transformers
* Support for a dynamic lifting operation to allow circuit generation
to depend on parameters generated at circuit execution time.
* Extensive libraries of quantum functions, including: libraries for
quantum integer and fixed-point arithmetic; the Quantum Fourier
transform; an efficient Qram implementation; libraries for
simulation of pseudo-classical circuits, Stabilizer circuits, and
arbitrary circuits; libraries for exact and approximate
decomposition of circuits into specific gate sets.
Comments are welcome!