LQPL - A Linear Quantum Programming Language
LQPL version 0.9.0 is now available
Main changes in this release
- Modularization of the Compiler / Emulator / Front End.
- Removal of dependency on Alex and Happy for the Compiler(Moved to Parsec). The assembler in the emulator still requires Alex and Happy
- Removal of dependency on Gtk2Hs for the front end - moved to a JRuby/Java/Swing based interface.
- Addition of a dependency upon hspec for tests in the Haskell portions of the code
- New build system, Rake - builds the front end and controls the Haskell build which uses CABAL.
- Migration to BitBucket, a publicly available source code hosting site, together with an issue tracker and wiki.
Source code
LQPL is available at BitBucket in a public git repository.
Source code(Haskell, JRuby and Java): lqpl-server-0.9.0-source.tgz.
Mac / Apple executable and DMG installer
Linux and Windows Executables
lqpl-0.9.0-bin-x86_64-linux.tgz - Untar this to a directory of your choice, change to that directory and type: java -jar lqpl_gui.jar. This binary has been build on an Ubuntu system - and we have noted it does not work on the current Fedora 17 build. The LQPL wiki has instructions for building on Fedora 17.
Windows binary still remains to be done
How to get the previous 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. Additionally, you will need Alex and Happy - note that if you install the Haskell Platform, these are normally included.
Compiling follows the standard Haskell Cabal
build system. Briefly:
- Download and unzip and untar the above file in your desired location.
- In the created directory (
lqpl-0.8.4) type:
runghc Setup.hs configure
runghc Setup.hs build
runghc Setup.hs install
where the install may require you to sudo on macintosh or linux.
- Execute the emulator by typing
emlqpl at the command line.
- 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
Road-map
This "road-map" might be more appropriately called a "dream list" or even
"random thoughts". We intend it to document the things we plan / would
like to do to LQPL.
Environment - Release
| What | When | Status | Version | Notes |
| 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.
|
| Source Release |
May 2012 |
In testing |
0.9.0 |
Separation of UI from emulator and compiler. |
UI and Functionality
| What | When | Status | Version | Notes |
| 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 link-back |
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 / Back-end
| What | When | Status | Version | Notes |
| 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. |
|