[Home] [QCL] [NeuroGen] [WaveTools] [Programs] [Papers] email

QCL - A Programming Language for Quantum Computers

Current version: qcl-0.6.5

Despite many common concepts with classical computer science, quantum computing is still widely considered as a special discipline within the broad field of theoretical physics. One reason for the slow adoption of QC by the computer science community is the confusing variety of formalisms (Dirac notation, matrices, gates, operators, etc.), none of which has any similarity with classical programming languages, as well as the rather ``physical'' terminology in most of the available literature.

QCL (Quantum Computation Language) tries to fill this gap: QCL is a high level, architecture independent programming language for quantum computers, with a syntax derived from classical procedural languages like C or Pascal. This allows for the complete implementation and simulation of quantum algorithms (including classical components) in one consistent formalism.


The current version of QCL is 0.6.7 (Dec 22 2022):

Due to limitations of the glibc2, the QCL 0.6 binary distributions no longer contain static binaries. If your systems lacks the necessary libraries for the precompiled binary, you can try qcl-static from qcl-0.5.1-bin.tgz which should run on most Linux systems.

The QCL interpreter is Open Source software under the terms of the GNU General Public Licence (GPL), version 2. See COPYING for details.

Changes in 0.6.7:

Fixed bug when allocating 32 or more qubits at once.

Changes in 0.6.6:

Fixed the != operator for quantum condition (was treated as ==). Thanks to Sebastian Schmitt for spotting this bug.

Changes in 0.6.5:

Removed -lfl (i.e. linking against libflex) from the linker options as it seems to break compilation on newer systems.

Changes in 0.6.4:

Dump format supports polar coordinates. Minor updates for gcc 4.7. Dropped the 32-bit binary package.

Changes in 0.6.3:

This is a minor bugfix release to fix the emulation of the conditional swap gate (Fredkin gate). Thanks to Jaroslaw Miszczak for spotting this bug.

Changes in 0.6.2:

This is mostly a maintenance release to catch up with the ever changing GNU C++ standards. No new functionality was added.

Changes in 0.6.1:

Changes in 0.6.0:

Changes in 0.5.1:

Changes in 0.5.0:

Changes in 0.4.3:

Changes in 0.4.2:

Changes in 0.4.1:

Changes in 0.4.0:

Older Releases:


If you have any questions about QCL, if you encounter any problems running QCL, if you miss certain features, if you have patches, ports, QCL scripts or suggestions for improvements, or even if you are just a happy user, then please let me know about it.