Specification and Implementation of Quantum Common Lisp, for classical interface gate-model quantum computers.
Note: due to an unfortunate naming conflict with Omer's QCL, a quantum programming language based on the syntax of C, we will generally refer to Quantum Common Lisp as (qcλ), or qclambda
in the source.
Based on:
- Quipper, embedded, scalable pure functional language for quantum computation
- Quantum Lambda Calculus
- "A lambda calculus for quantum computation with classical control
- QGAME: Quantum Gate And Measurement Emulator
- Q-Lisp Project (Quantum Computer Programming Language) (not to be confused with QLISP CL Extension for parallel processing)
- Simulation of Quantum Computations in Lisp ftp://prog.vub.ac.be/tech_report/2006/vub-prog-tr-06-15.pdf
- Quantum Processes, Systems & Information -- Schumacher, Westmoreland
- Quantum Computer Science -- Mermin
Dump the executable:
$ CC=gcc sbcl --script make.lisp
Install for all users:
$ sudo install -v ./black-stone /usr/local/bin
Or if you have a local executable directory on your path:
$ install -v ./black-stone ~/bin
When running from the terminal, it is recommended to use RLWRAP:
$ rlwrap black-stone
...
#[BLACK-STONE::QCL-USER]> _
This will provide you with an improved line-editing environment over the underlying SBCL REPL.
Full shell integration is also provided through UBER-SHELL.
Tested on Linux x86_64 and OS X 10.7
- SBCL 1.1.14+
- Quicklisp
Available through Quicklisp:
- LET-OVER-LAMBDA
- CL-ISAAC
- GSLL
- CL-PPCRE
- CL-FAD
- CLON (the Command-Line Options Nuker)
Other libraries on GitHub (clone into ~/quicklisp/local-projects/)