Archive for June, 2009

The next conference: FOPARA

June 24, 2009 in Research | Comments (1)

Tags: ,

First things first: the paper sub­mit­ted to LCC has been put up on the Pola pro­ject page.

Secondly, one of my super­visors informed of the loom­ing dead­line for FOPARA (Found­a­tional and Prac­tical Applic­a­tions of Resource Ana­lysis), a work­shop of FM2009 in Eind­hoven. The work­shop seems like a bril­liant fit for my work and there are a lot of inter­est­ing people attend­ing (for instance Mar­tin Hof­mann as well as Hume people like Kevin Ham­mond and Greg Michael­son and many others).

The only stick­ing point is the dead­line, less than 3 weeks away. I think this would be a good oppor­tun­ity to write up the more prac­tical aspects of Pola, how it’s imple­men­ted and how a pro­gram­mer could use it. I’m already a little back­logged with imple­ment­a­tion details and, in my mind, fin­ish­ing up the new imple­ment­a­tion of bounds infer­ence is more import­ant than writ­ing another paper.


LCC acceptance

June 23, 2009 in Research | Comments (2)

Tags: ,

The paper to LCC was accep­ted. I didn’t think it was a ter­ribly great paper — we have a per­sist­ent prob­lem of organ­iz­ing papers and decid­ing exactly what should be included and how it should be presen­ted — but the import­ant thing is that one of us will be head­ing to LCC. Our work is, to a large extent, an exten­sion of Mar­tin Hof­mann’s work and he will be present at LCC! It’s a great opportunity.


Robin’s visit to London

June 17, 2009 in Research | Comments (0)

Tags: , ,

My under­gradu­ate super­visor (from the Uni­ver­sity of Cal­gary), Robin Cock­ett, was in town today on a short visit. My two cur­rent super­visors, Robin and I spent the entire day in a friendly research meet­ing. I sup­pose the biggest bene­fit was the every­one got to meet each other, but we also covered a lot of ground on Pola and what we should be focus­ing on.

The first big change is that we’re going to, again, redo peeks and cases. Peeks and cases have long been a prob­lem with Pola and one which is, so far as I know, com­pletely unique to Pola. In a typ­ical func­tional lan­guage, case con­structs are no mat­ter at all: you have some datum and you case on it to see what it is (is it an empty list or a non-​​empty list?) and go on your way. In Pola things are not so neat and tidy: cent­ral to the work­ings of Pola is the idea that often you’re not allowed to ref­er­ence a vari­able more than once (lest you break out of poly­no­mial time). This restric­tion can be waived, very del­ic­ately, if you prom­ise to only “peek” at a value but not use it. The dis­tinc­tion between a case (“con­sum­ing” a value) and a peek has always been a bit awk­ward, but also very dan­ger­ous to play with if you don’t want to acci­dent­ally allow non-​​polynomial things slip­ping in. I think we’ve finally figured out a good scheme.

The second big change is dis­cuss­ing how to the bounds infer­ence. This is a huge one because hav­ing the com­piler infer bounds is, in my mind, the raison d’être for Pola. I’m almost done imple­ment­ing very loose, clumsy bounds. They’re cor­rect as upper bounds, but they’re so loose as to be nigh use­less. There will never be a per­fect solu­tion to get­ting totally tight bounds and I’m becom­ing increas­ingly aware that there is a huge trade-​​off between being able to get tight bounds on things and hav­ing to carry around a lot of typ­ing inform­a­tion that allows you to infer those bounds. This is what I’ll be spend­ing most of my time on in the near future.

As for the prob­lem I men­tioned last time about hav­ing to imple­ment my own poly­no­mial arith­metic: I just rewrote it myself and I’m happy with it. It works and it’s much cleaner than before.


The search for polynomials

June 15, 2009 in Research | Comments (3)

Tags: , ,

First, some excit­ing news that I’ve added the Pola pro­ject as my first pro­ject. There is a Sub­ver­sion repos­it­ory for it as well. We’ve been talk­ing about get­ting a site set up around Pola, with examples and user’s guides and maybe some inter­act­ive fea­tures, so this is a very small first step towards that.

Code-​​wise, what I’ve been work­ing on lately is finally try­ing to do bounds infer­ence prop­erly in the imple­ment­a­tion. The bounds infer­ence still isn’t entirely done and what’s there still isn’t work­ing entirely per­fectly, but it is excit­ingly close! Type in any well-​​typed func­tion which relies only on induct­ive data types and it will give you poly­no­mial bound on the run­ning time! Coin­duct­ive data types will come soon.

In an effort to mak­ing my “bor­ing” research blog more inter­est­ing, I’ve now even got a screen­shot! Is code any more excit­ing when it’s in screen­shot form?

The biggest prob­lem I’ve had so far is writ­ing my own Poly­no­mial data type in Haskell. I don’t even need any­thing fancy: I need addi­tion, sub­trac­tion and mul­ti­plic­a­tion of poly­no­mi­als over arbit­rary vari­ables. Sadly I haven’t found any­thing suit­able and had to build my own. I’m a little out of my depth here: it would be a pretty big under­state­ment to say that I’m ignor­ant when it comes to com­puter algebra. It’s a vir­tual cer­tainty that I’m doing my data rep­res­ent­a­tions and arith­metic oper­a­tions in the least effi­cient way pos­sible. But I can’t worry too much about; this isn’t really what my research is about.

If I find time today I think I’ll go through some com­puter algebra sys­tems to find one which has a suit­ably free licence and has a reas­on­able For­eign Func­tion Inter­face (so that I can use it pain­lessly from Haskell). Does such a thing exist?


The new website

in Website | Comments (0)

I have finally found the motiv­a­tion to register my own domain (wiz​ard​like​.ca), which gives me a lot of flex­ib­il­ity in how I do things, but also con­sol­id­ates everything I want out of web services.

So far it’s just this blog, which replaces my old blog, and my soft­ware pro­jects site. Over the com­ing weeks and months the web­site will likely spread, at least into an image gal­lery, and maybe also into a gene­a­logy data­base and a teach­ing resources site. It’s also fant­ast­ic­ally nice to have my email, XMPP (Jab­ber), data back-​​up and repos­it­ory ser­vices under one domain.