Development, Haskell, Quantum Computing, Quantum Programming, Quipper, Technology

The Quipper Quantum Programming Language

I finally got a chance today to play with Peter Selinger’s new quantum programming language, Quipper. Since it was built as an embedded, scalable functional programming language on Haskell, it was quite easy to get up and running; and naturally, with exponential overhead, you are able to simulate an actual quantum computer.

Note: Selinger’s quantum computer simulator within Quipper is designed after an ideal, gate-model quantum computer, which is a substantially different beast from D-Wave’s adiabatic quantum computer. For example, some members of the quantum computing community argue that D-Wave’s line of cryogenically-cooled superconducting chimera-graph flux-qubit processors aren’t ‘true’ quantum computers, primarily because they don’t follow the gate-model, and instead implement their own concept of energy programming to gain most-efficient-solution. The fact is, both are ‘true’ quantum computers, in the sense that they exploit quantum mechanics for computation—and when it comes down to it, flux-qubits are damn cool. In the early days of classical computing, there were a number of competing models of computation as well—but it was eventually discovered that all models that were Turing-complete were effectively equal, so as the most expedient option, the von Neumann model won-out. The question of what counts as a true quantum computer is less simple, of course—but suffice it to say that adiabatic and gate-model quantum computers serve different purposes.

With those differences in mind, we can continue.

You can get Quipper yourself from here: http://www.mathstat.dal.ca/~selinger/quipper/

Familiarity with Haskell, functional programming, and a working installation of The Haskell Platform will get you most of the way. There are a few additional dependencies to install, but everything you need to know is covered in the INSTALLING and README files listed on the language page. Once you’ve got everything set up, the Quipper scripts folder added to your PATH, and all the examples built, continue here.

Continue reading

Advertisements
Common Lisp, Development, LISP

Two Doug Hoyte Libraries, now ready for Quicklisp!

The other day I uploaded two of Doug Hoyte’s libraries that I’ve been sitting on to GitHub: the source code from his book Let Over Lambda, featuring a number of useful macros; and his Common Lisp version of the ISAAC-32 algorithm for fast cryptographic random number generation. The libraries are ASDF- and Quicklisp- installable, tested on SBCL 1.1.7+ on Arch Linux and OS X Lion.

Doug Hoyte’s code has been modified slightly to work under SBCL and load as libraries. Both libraries, just as Doug Hoyte’s original code, are released under the BSD Simplified License (attribution required).

You can get the repos here:

LET-OVER-LAMBDA: https://github.com/thephoeron/let-over-lambda

CL-ISAAC: https://github.com/thephoeron/cl-isaac

Continue reading