LtU Forum

Quantum Lambda Calculus

Quantum Lambda Calculus
Peter Selinger, Benoît Valiron

We discuss the design of a typed lambda calculus for quantum computation. After a brief discussion of the role of higher-order functions in quantum information theory, we define the quantum lambda calculus and its operational semantics. Safety invariants, such as the no-cloning property, are enforced by a static type system that is based on intuitionistic linear logic. We also describe a type inference algorithm, and a categorical semantics.

Quantum programming languages have been discussed before on LtU, but there hasn't been a lot of activity lately. I just came across this paper from 2009 that develops the idea of entangled functions.

Scheme from Scratch project

I hope it is not considered bad form to mention a series of articles I've been writing recently. I think some LtU readers may find them interesting. I wish I'd found such a link here on LtU.

I'm recording the construction of a Scheme interpreter implemented in C. It is a node-walking interpreter modeled on the first meta-circular interpreter in SICP. The idea of the series is to help readers over the hump of thinking that writing an interpreter in C is an insurmountable task.

Introduction

Bootstrap Scheme v0.1 integers

It has been great to see some readers inspired enough to write their own interpreters with different approaches.

Peter

Rapid Prototyping tools & environments from academia

Going into 2010, what are the most interesting rapid prototyping tools & environments coming from academia?

What I am aware of:

I am sure there are plenty of things I've not tried yet.

I figure there is no harm asking for a brain dump of what the rest of LtU is using, interested in, and/or learning about.

does anybody want to fix wikipedia?

regarding multimethods, the Understanding Dispatch section on the wikipedia page seems pretty bad to me. i have never tried to extensively fix wikipedia entries. what bugs me about the current entry is that i think it confuses overloading with late binding. i could attempt a re-write and ask for critique here?

50 years of Advanced Programming – an Anniversary Seminar on Algol 60

The influential Algol 60 report was created 50 years ago after a meeting in Paris held from 1 to 16 January, 1960. A seminar marking the 50th anniversary of Algol 60 will be held next week:

This seminar marks the 50th anniversary of the publication of the ALGOL 60 report. Its significance and influence will be presented and discussed by a panel of distinguished speakers. Contributions for this anniversary from several of the pioneers in this field will be included. The talks will be followed by discussion - till 5pm. This is a joint meeting of the Computer Conservation Society and the BCS Advanced Programming Specialist Group. More details of the programme will be given before the event on the website of the BCS Advanced Group – see the page for the APG January event.

Date/Time: Thursday 14th January 2010, 2.30 - 5.00 p.m.

Venue:The Library, The Science Museum, Exhibition Road, South Kensington, London S.W.7.

Contributors:
Mike Woodger interviewed by Brian Wichmann
Brian Randell on "Early compilers"
Cliff Jones with a contribution from Tony Hoare
Richard Bornat on Peter Landin's early work
Cliff Jones with a contribution from Luca Cardelli
David Holdsworth speaking on revivifying the KDF9 compiler
Peter Onion speaking on practical aspects of using the Elliott 803 compiler

Session Chairmen: John Florentin and David Hartley

Colorful dominoes game hides an exercise in propositional logic

Dominoes on Acid is a game superficially similar to the classic dominoes game. You get tiles with patterns on each end, and you can connect the ends of two tiles only when they show the same pattern. But instead of the standard two-color tiles spots, the tiles in Dominoes on Acid have (sometimes very complex) multi-colored patterns. Spoiler about 'proof in classical propositional logic' on authors site: http://www.winterdrache.de/freeware/domino/index.html

wondering why C is the language of compilers- when a Scheme subset would seem to be a better fit?

I was just listening to episode 57 of Software Engineering Radio ( http://www.se-radio.net/transcript-57-compiletime-metaprogramming )
I'm only 40 minutes in, but I'm wondering why C is the language of compilers- when a Scheme subset would seem to be a better fit?
(excluding the obvious reason of not wanting to rewrite gcc)

Please forgive my ignorance in this,

Stephen

An idea and syntax for "programming language"

Wanted to know, what you think about this kind of programming language:
WWL

In case you think it's good, I would like to have some cooperation in developing it as I haven't all that time alone - but I think it would make web a better place ;)

Tambet Väli

ParaSail, a new language oriented toward parallelism and verification

For those who enjoy seeing sausages made, as opposed to just eating them, we have started a blog following the design of a new programming language called "ParaSail" for Parallel Specification and Implementation Language (not to be confused with SAIL or MAINSAIL, languages originating in the Stanford AI Lab):

http://parasail-programming-language.blogspot.com/

ParaSail doesn't exist yet, but the blog talks about it in what my colleagues call the "software present tense," presuming some day it might. Postings are about once a week, though it varies a lot. As with most blogs, the most recent entry is presented first, but it is probably wise to read the first few entries as they give a bit of the background, before reading the more current entries.

ParaSail is intended for high-criticality software. The things that might make ParaSail of interest are its implicit parallelism, its integrated support for annotations (preconditions, postconditions, assertions, constraints, etc.), the fact that all modules are parameterized (i.e. are essentially generic templates), and that there are only two kinds of modules, interfaces and classes (which implement interfaces). A type is produced by instantiating an interface with appropriate parameters. The two kinds of modules are intended to cover the entire spectrum of grouping constructs, from packages/modules at the high end, to simple types at the low end.

ParaSail clearly inherits plenty of ideas from other languages, such as Modula-2/3, ML/CAML/OCAML, CLU, Eiffel, C++, Java, Ada, etc. The implicit parallelism and the integrated annotations were some of the reasons to justify starting from scratch, but also there is the pleasure of now and then starting with a clean sheet of paper.

In any case, it is inherently a work in progress, but comments and questions are certainly welcomed.

-Tucker Taft

Jison

Bottom-up parser generator written in JavaScript.

Similar to Bison for C.

A very nice, interesting effort (IMO).

XML feed