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.
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 (
where the install may require you to sudo on macintosh or linux.
runghc Setup.hs configure
runghc Setup.hs build
runghc Setup.hs install
- Execute the emulator by typing
emlqpl at the command line.
- Example programs are discussed in the documentation and included under the doc directory.
User documentation is in progress. A first version is included with the download and
available separately: lqplManual.pdf
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
||This was promised in the HCAR in May, so it is about time. Compiling requires a
recent ghc release and
|Source release / bugfixes
||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
||Separation of UI from emulator and compiler.
UI and Functionality
|Compile in emulator
||Allow the emulator to open
.qpl files, compile them and automatically
||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
||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
|Allow multiple threads
||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.