LQPL - A Linear Quantum Programming Language

New version coming soon!

We expect to release version 0.9 of LQPL in May, 2012. Please check back at that time for the latest release. Major changes in the upcoming release:

These changes are being made to simplify the building of LQPL and to allow us to focus on future performance improvements of the emulator.

How to get the current version

Download lqpl-0.8.4.tgz and compile it. You will need a recent copy of ghc and version 0.10.1 of gtk2hs to compile it.

Compiling follows the standard Haskell Cabal build system. Briefly:

  1. Download and unzip and untar the above file in your desired location.
  2. In the created directory (lqpl-0.8.4) type:
    1. runghc Setup.hs configure
    2. runghc Setup.hs build
    3. runghc Setup.hs install
    where the install may require you to sudo on macintosh or linux.
  3. Execute the emulator by typing emlqpl at the command line.
  4. Example programs are discussed in the documentation and included under the doc directory.

Documentation

User documentation is in progress. A first version is included with the download and available separately: lqplManual.pdf

Additionally, you can look at 2007 Masters thesis titled "Programming with a Quantum Stack": pdf 190 pages, 1M.

Roadmap

This "roadmap" might be more appropriately called a "dreamlist" or even "random thoughts". I intend it to document the things I plan / would like to do to LQPL.

Environment - Release

WhatWhenStatusVersionNotes
Source release September 2009 Completed 0.8.3 This was promised in the HCAR in May, so it is about time. Compiling requires a recent ghc release and gtk2hs 0.10.
Source release / bugfixes April 2010 Completed 0.8.4 This release addresses a few bugs found in quantum stack merging and adds some example programs for probabilistic computing. Compiling requires a recent ghc release and gtk2hs 0.10.
binary release October 2010 Not Started 0.8.5 Likely a windows as most Mac and Linux users will have no issues compiling.

UI and Functionality

While there is separation between these two (in my mind and my code), making a change or upgrade in one typically requires a change in the other.

WhatWhenStatusVersionNotes
Compile in emulator September 2009 Completed 0.8.3 Allow the emulator to open .qpl files, compile them and automatically load the .qpo file.
Add breakpoints TBD Not Started ? Currently the emulator allows stepping through a fixed number of instructions. It would be much more convenient to stop where you want rather than trying to compute how many instructions to step over.
Instruction to source linkback TBD Not Started ? It would be useful for the "machine code" to allow links back to the source code to allow source level stepping, following execution at the source level, breakpoints at the source level.

Performance / Backend

WhatWhenStatusVersionNotes
Allow multiple threads TBD Not Started ? The code processes instructions by processing them down multiple branches of the quantum stack. This seems ready made for multiple processors. We would need to control the total number of threads/parallel processes being run.
Last modified by Brett Giles
Last modified: 2012-05-14

Valid XHTML 1.0!