Random thoughts, daily life, being a student, quantum computing.


Upcoming plans for LQPL

Well, it has been a while, hasn't it.

I finally submitted the Linear Quantum Programming Languages project to HCAR as noted in a previous post. So that means I actually need to do something about it.

In the past, I had concentrated on performance and the UI things I wanted. Now that the public will actually get to see code, I thought the first thing to do would be to tidy the code a bit.

First step was to "cabalize" it (Cabal is the default Haskell build system). That was fun and not too tough.

Then, I finally made use of Neil Mitchell's great product, hlint. Lovely product and a great example of why functional languages are so great. Transforms are definable and after you transform the source you have the same program. Hah - try doing that in C.

The next big thing for the program - get it handling source files rather than just the compiled files. Right now, the compiler is a separate console program. Nobody likes a console program any more. (Except me - but I'm freakin' old :)

I'll just be doing the minimal work on that, using GtkSourceView in Gtk2Hs to display the file, have some way of compiling it, (menu item on the sourceview window? button there? menu item on the main window????) and an autoload of the compiled file.

Further plans can be found at my LQPL page.


FMCS 2009 schedule

Schedule was just posted:

Thursday, May 28, 2009

3:00p.m. Gage residence rooms available for check-in

6:00p.m. Welcome Reception - Ruth Blair AB - Gage Residence

Friday, May 29, 2009

Tutorial Sessions - WMAX 240 - 1933 West Mall

9:00-10:30a.m. Ernie Manes - Equationally definable full subcategories of spaces.

10:30-11:00a.m. Break

11:00-12:30p.m. Vaughan Pratt - Axiomatizing affine and Euclidean space.

12:30-2:30p.m. Lunch

2:30-4:00p.m. Pieter Hofstra - Types, groupoids and homotopy.

4:00-4:30p.m. Break

4:30-5:30p.m. Dorette Pronk - The left and right adjoints of Span.

Saturday, May 30, 2009

Research talks - WMAX 240 - 1933 West Mall

9:00-9:50a.m. Mehrnoosh Sadrzadeh - What is the vector space content of
what we say? A compact categorical approach to distributed meaning.

9:50-10:30a.m. Robert Seely - The basics of Cartesian differential restriction

10:30-11:00a.m. Break

11:00-12:00 Michael Johnson - Monadicity, descent, and classical database view

12:00-12:30p.m. Art Stone - What might Counter-bi-algebras be?

12:30-2:00p.m. Lunch

2:00-2:40p.m. Robin Cockett - Cartesian differential restriction categories.

2:40-3:05p.m. Brian Redmond - TBA

3:05-3:40p.m. Shusaku Tsumoto - Medical data mining.

3:40-4:10p.m. Break

4:10-4:35p.m. Brett Giles - Reversible computation and Frobenius algebras.

4:35-5:00p.m. Aaron Hunter - Algebraic considerations on the dynamics of belief.

6:00p.m. Banquet - Cedar Room in the Ponderosa Building

Sunday, May 31, 2005

Sunday talks will be in WMAX 240 - 1933 West Mall

9:00- 9:50a.m. Bob Rosebrugh - EASIK: Database design and manipulation
implemented categorically.

9:50-10:20a.m. Sean Nichols - On strong reduction in combinatory logic.

10:20-11:00a.m. Break

11:00-12:00 Vaughan Pratt - Euclid's postulates at all dimensions.


The first HCAR submission

Taking a cue from others - an easy blogging entry :).

I've finally made a submission to the HCAR for L-QPL. Content below:

LQPL - A quantum programming language compiler and emulator

LQPL (Linear Quantum Programming Language) consists of two main pieces, a compiler for a functional quantum programming language and an associated assembler / emulator.

The system was the main subject of the author's master's thesis and was inspired by Peter Selinger's paper Towards a Quantum Programming Language. LQPL incorporates a simplified module / include system (more like C's include than Haskell's import), various predefined unitary transforms, algebraic data types, and operations on purely classical data. The compiler translates LQPL programs into an assembler like language. The emulator, written using Gtk2Hs, translates the assembler to machine code and provides visualization of the program as it executes.

For example, the following procedure implements quantum teleportation:

teleport::(n:Qubit, a:Qubit, b:Qubit ; b:Qubit) =
Not a <= n ;
Had n;
measure a of
0> => {}
1> => {Not b};
measure n of
0> => {}
1> => {RhoZ b}

The emulator will allow a person to step through this program, displaying the quantum values as a tree. The figure below is a screen shot showing the results after the first measure in

Since the publication of the thesis, some time and attention has been spent on improving performance and the UI of the emulator.

We plan to release this to the public sometime this year. It will be made available from the author's website and the programming languages research group's website at
the University of Calgary.