June 24, 2009 in Research | Comments (1)
Tags: conference, Pola
First things first: the paper submitted to LCC has been put up on the Pola project page.
Secondly, one of my supervisors informed of the looming deadline for FOPARA (Foundational and Practical Applications of Resource Analysis), a workshop of FM2009 in Eindhoven. The workshop seems like a brilliant fit for my work and there are a lot of interesting people attending (for instance Martin Hofmann as well as Hume people like Kevin Hammond and Greg Michaelson and many others).
The only sticking point is the deadline, less than 3 weeks away. I think this would be a good opportunity to write up the more practical aspects of Pola, how it’s implemented and how a programmer could use it. I’m already a little backlogged with implementation details and, in my mind, finishing up the new implementation of bounds inference is more important than writing another paper.
First things first: the paper submitted to LCC has been put up on the Pola project page.
Secondly, one of my supervisors informed of the looming deadline for FOPARA (Foundational and Practical Applications of Resource Analysis), a workshop of FM2009 in Eindhoven. The workshop seems like a brilliant fit for my work and there are ...
June 23, 2009 in Research | Comments (2)
Tags: conference, Pola
The paper to LCC was accepted. I didn’t think it was a terribly great paper — we have a persistent problem of organizing papers and deciding exactly what should be included and how it should be presented — but the important thing is that one of us will be heading to LCC. Our work is, to a large extent, an extension of Martin Hofmann’s work and he will be present at LCC! It’s a great opportunity.
The paper to LCC was accepted. I didn't think it was a terribly great paper—we have a persistent problem of organizing papers and deciding exactly what should be included and how it should be presented—but the important thing is that one of us will be heading to LCC. Our work is, to a large ...
June 17, 2009 in Research | Comments (0)
Tags: bounds, peeks, Pola
My undergraduate supervisor (from the University of Calgary), Robin Cockett, was in town today on a short visit. My two current supervisors, Robin and I spent the entire day in a friendly research meeting. I suppose the biggest benefit was the everyone got to meet each other, but we also covered a lot of ground on Pola and what we should be focusing on.
The first big change is that we’re going to, again, redo peeks and cases. Peeks and cases have long been a problem with Pola and one which is, so far as I know, completely unique to Pola. In a typical functional language, case constructs are no matter 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: central to the workings of Pola is the idea that often you’re not allowed to reference a variable more than once (lest you break out of polynomial time). This restriction can be waived, very delicately, if you promise to only “peek” at a value but not use it. The distinction between a case (“consuming” a value) and a peek has always been a bit awkward, but also very dangerous to play with if you don’t want to accidentally allow non-polynomial things slipping in. I think we’ve finally figured out a good scheme.
The second big change is discussing how to the bounds inference. This is a huge one because having the compiler infer bounds is, in my mind, the raison d’être for Pola. I’m almost done implementing very loose, clumsy bounds. They’re correct as upper bounds, but they’re so loose as to be nigh useless. There will never be a perfect solution to getting totally tight bounds and I’m becoming increasingly aware that there is a huge trade-off between being able to get tight bounds on things and having to carry around a lot of typing information that allows you to infer those bounds. This is what I’ll be spending most of my time on in the near future.
As for the problem I mentioned last time about having to implement my own polynomial arithmetic: I just rewrote it myself and I’m happy with it. It works and it’s much cleaner than before.
My undergraduate supervisor (from the University of Calgary), Robin Cockett, was in town today on a short visit. My two current supervisors, Robin and I spent the entire day in a friendly research meeting. I suppose the biggest benefit was the everyone got to meet each other, but we also covered a lot of ...
June 15, 2009 in Research | Comments (3)
Tags: algebra, Haskell, Pola
First, some exciting news that I’ve added the Pola project as my first project. There is a Subversion repository for it as well. We’ve been talking about getting a site set up around Pola, with examples and user’s guides and maybe some interactive features, so this is a very small first step towards that.
Code-wise, what I’ve been working on lately is finally trying to do bounds inference properly in the implementation. The bounds inference still isn’t entirely done and what’s there still isn’t working entirely perfectly, but it is excitingly close! Type in any well-typed function which relies only on inductive data types and it will give you polynomial bound on the running time! Coinductive data types will come soon.
In an effort to making my “boring” research blog more interesting, I’ve now even got a screenshot! Is code any more exciting when it’s in screenshot form?
The biggest problem I’ve had so far is writing my own Polynomial data type in Haskell. I don’t even need anything fancy: I need addition, subtraction and multiplication of polynomials over arbitrary variables. Sadly I haven’t found anything suitable and had to build my own. I’m a little out of my depth here: it would be a pretty big understatement to say that I’m ignorant when it comes to computer algebra. It’s a virtual certainty that I’m doing my data representations and arithmetic operations in the least efficient way possible. 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 computer algebra systems to find one which has a suitably free licence and has a reasonable Foreign Function Interface (so that I can use it painlessly from Haskell). Does such a thing exist?
First, some exciting news that I've added the Pola project as my first project. There is a Subversion repository for it as well. We've been talking about getting a site set up around Pola, with examples and user's guides and maybe some interactive features, so this is a very small first step towards that.
Code-wise, ...
in Website | Comments (0)
I have finally found the motivation to register my own domain (wizardlike.ca), which gives me a lot of flexibility in how I do things, but also consolidates everything I want out of web services.
So far it’s just this blog, which replaces my old blog, and my software projects site. Over the coming weeks and months the website will likely spread, at least into an image gallery, and maybe also into a genealogy database and a teaching resources site. It’s also fantastically nice to have my email, XMPP (Jabber), data back-up and repository services under one domain.
I have finally found the motivation to register my own domain (wizardlike.ca), which gives me a lot of flexibility in how I do things, but also consolidates everything I want out of web services.
So far it's just this blog, which replaces my old blog, and my software projects site. Over the coming weeks and ...