Bitbucket is a code hosting site with unlimited public and private repositories. We're also free for small teams!


LQPL - a functional quantum programming language.

LQPL is a functional quantum programming language based on the semantics as presented in "Towards a Quantum Programming Language" by Peter Selinger. LQPL is available as a source distribution as well, at

The binary distribution contains the following items:

  1. bin - The backend binaries - lqpl, lqpl-compiler-server, lqpl-emulator. * The back end is written in Haskell and is comprised of two main components

    • The Emulator (binary: lqpl-emulator)
    • The Compiler (command line binary: lqpl; server binary: lqpl-compiler-server)
    • Each of the server pieces are required and are included in this binary distribution.
  2. lib - Contains the redistributed jars required to run the front end UI.

  3. LICENSE - The license file.

  4. lqplcode - LQPL source files that can be used with the front end UI.

  5. lqpl_gui.jar - The executable of the front end UI(this is written in Java and JRuby). lqpl_gui is a front end for the Linear Quantum Programming Language developed at the University of Calgary.

  6. lqplManual.pdf - The manual of the LQPL language.

  7. README - This read me file.


You will need to have a copy of the Java 6 runtime environment installed and add the path of bin directory of the JRE into your system path.


  1. You may leave the binary servers as they are and use them through the lqpl_gui, or you can copy the command line binary(lqpl) into a directory on your path and then use it to compile lqpl programs.

  2. To run LQPL, open a terminal, change to the directory where you expanded the tar file and type 'java -jar lqpl_gui.jar' (without quotes).


Key Features

  1. The modularized compiler, emulator and front end.
  2. Graphical User Interface front end.

Release 0.9.0

This is the first release of LQPL to be made up of a separated GUI and back-end. ChangeLog: 1. Modularization of the Compiler / Emulator / Front End. 2. Removal of dependency on Alex and Happy for the Compiler(Moved to Parsec). The assembler in the emulator still requires Alex and Happy 3. Removal of dependency on Gtk2Hs for the front end - moved to a JRuby/Java/Swing based interface.

Reporting Issues

Please report any issues to If you prefer, you may also enter issues directly at:

How You Can Contribute

Fork, issue a pull request. Or, get in touch with

Recent activity

Brett Giles

Brett Giles pushed 1 commit to BrettGilesUofC/lqpl

d180239 - Big renaming of executable_code_xxx to executing_code_xxx to make panel inheritance work well with desired human name
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.