<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Wizardlike research &#187; Research</title>
	<atom:link href="http://wizardlike.ca/blog/category/research/feed/" rel="self" type="application/rss+xml" />
	<link>https://wizardlike.ca/blog</link>
	<description>Computer geekery</description>
	<lastBuildDate>Fri, 27 Aug 2010 14:33:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Thesis writing</title>
		<link>https://wizardlike.ca/blog/2010/08/thesis-writing/</link>
		<comments>https://wizardlike.ca/blog/2010/08/thesis-writing/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 17:33:04 +0000</pubDate>
		<dc:creator>Mike Burrell</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[bounds]]></category>
		<category><![CDATA[Pola]]></category>
		<category><![CDATA[thesis]]></category>

		<guid isPermaLink="false">http://wizardlike.ca/blog/?p=312</guid>
		<description><![CDATA[When I visited Calgary last, I explained my bounds infe [...]]]></description>
			<content:encoded><![CDATA[<p>When I visited Calgary last, I explained my bounds inference scheme to Brian. It took most of an entire day of solid explanations on the whiteboard before he understood what I was talking about, but he didn’t have any suggestions for how to simplify it. “No this is right,” he said. “This is completely the right way to do it.”</p>
<p>Some time later he said “my biggest worry is you’re going to do all this work and no one will ever be able to understand it.” Aside from myself, Brian is the person who understands this best in the world, so it’s disconcerting that it took a day to explain it to him. I have low hopes that I’ll be able to put together a thesis which is understandable to my committee, but on the other hand I have high confidence in my teaching abilities, and what is writing a thesis if not non-verbal teaching?</p>
<p>Pola is complex. The syntax and semantics are rather arcane, necessarily so: if there were any way to simplify it we would, and in fact we did put a few simplifications in. The typing system is moderately if you are well versed in type theory; if you don’t have a strong background in type theory I can only imagine it appears as a tangled vine of thorny bushes, where each thorn is recursively a tangled vine of thorny bushes somehow. The bounds inference system is probably even worse, though only because it hasn’t been done before and I’ve had to conjure it from the ground up. I feel most confident about the bounds inference because it’s my biggest contribution but also because it’ll be the easiest to make self-contained and not have to worry about whatever notation is conventional or canonical.</p>
<p>There are multiple versions of Pola, variations I suppose, which I keep mostly in my head. My thesis is focused on the “polynomial-time with unfolds and with duplication by peeks” variant of Pola, which I think to be the most useful, though probably the most annoying to deal with. Most of the stuff I’ve written up I’m now rewriting in a new notation which will hopefully be easier to understand.</p>
<p>A couple weeks ago my friend Angela came to my office and we chatted about theses. I don’t know whether to describe the process of writing a thesis as vanity or futility. Maybe it’s just compulsion. Whatever it is, it doesn’t seem totally sensical to consume so much effort and one’s twindling mental health into it. “Remember: nobody cares” she said. It’s become a bit of a mantra for me. Even if my work goes completely forgotten and truly no one cares, I can’t help but pretend that people do anyway and do everything properly. Every week I spend at least a couple panicked hours tying up loose ends that I’m entirely convinced no one would ever notice were loose to begin with. This diligence includes putting most of my days into dreaming up ways to represent things to make them easier to understand, even if no one fully will.</p>
<p>The further I get the more I notice the hacker part of me trying to overtake the academic part of me. It’s tempting to just strike out my entire chapter 3 and say “yeah seriously just download the software and play with it. You will learn more in 5 minutes of playing around than you will rereading this stupid chapter a hundred times”.</p>
<p>Man this entry sounded depressing. It’s all worth it when you <i>do</i> finish a section, though. You do get a bit of a rush when you finally word something really elegantly and you can visualize your committee nodding along thinking “well that’s clear. Why did put so much emphasis on something that’s so simple?”</p>
]]></content:encoded>
			<wfw:commentRss>https://wizardlike.ca/blog/2010/08/thesis-writing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Back from Calgary</title>
		<link>https://wizardlike.ca/blog/2010/06/back-from-calgary/</link>
		<comments>https://wizardlike.ca/blog/2010/06/back-from-calgary/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 21:31:15 +0000</pubDate>
		<dc:creator>Mike Burrell</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[bounds]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[Pola]]></category>
		<category><![CDATA[thesis]]></category>

		<guid isPermaLink="false">http://wizardlike.ca/blog/?p=297</guid>
		<description><![CDATA[Check out the picture gallery. Even though it was all c [...]]]></description>
			<content:encoded><![CDATA[<p>Check out the <a href="http://wizardlike.ca/pictures/FMCS/">picture gallery</a>. Even though it was all category theory, and consequently I can follow almost none of the other talks, it’s still a wonderful conference to go to. It’s a nice atmosphere, a good mixture of grad students, professors and professors emeriti.</p>
<p>After the conference I stayed in Calgary for another couple weeks working on my thesis and going through bounds inference in detail with Brian. Unfortunately, and excitingly, we found a big problem with the mixture of coinductive and inductive recursion which can take one out of polynomial time. I may write on that more at some other time, but only after I think of a good way to describe it, at which point the first place it will appear is my thesis.</p>
]]></content:encoded>
			<wfw:commentRss>https://wizardlike.ca/blog/2010/06/back-from-calgary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FMCS</title>
		<link>https://wizardlike.ca/blog/2010/06/fmcs-2/</link>
		<comments>https://wizardlike.ca/blog/2010/06/fmcs-2/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 13:30:14 +0000</pubDate>
		<dc:creator>Mike Burrell</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[bounds]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[family]]></category>
		<category><![CDATA[Pola]]></category>

		<guid isPermaLink="false">http://wizardlike.ca/blog/?p=293</guid>
		<description><![CDATA[The following fffffffuuuuuuuuuuuu describes most of my  [...]]]></description>
			<content:encoded><![CDATA[<p>The following fffffffuuuuuuuuuuuu describes most of my life for this week:<br />
<a href="http://wizardlike.ca/blog/wp-content/uploads/2010/06/FMCS.png"><img src="http://wizardlike.ca/blog/wp-content/uploads/2010/06/FMCS.png" alt="Problem?" /></a></p>
<p>I’m flying out to Calgary Sunday morning and then heading to Kananaskis for <a href="http://pages.cpsc.ucalgary.ca/~robin/FMCS/FMCS10/FMCS10.html">FMCS</a>. My code is already working for many cases, but it’s not as complete as I’d like it to be. I’d like to do a proper demonstration of bounds inference when I give my talk. It’s a pretty laid-back conference so, truth be told, even if I don’t get it totally working by then I can still just demo what I have, or just not demo at all.</p>
<p>I went to FMCS once before, in 2004 at the end of my undergrad. It’s a very nice conference, less formal than most, which makes it a lot more fun and a lot more productive, I think. After the conference I’ll be hanging around in Calgary for another week or so working on my thesis and hanging out with the parents. Good times.</p>
]]></content:encoded>
			<wfw:commentRss>https://wizardlike.ca/blog/2010/06/fmcs-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FMCS</title>
		<link>https://wizardlike.ca/blog/2010/05/fmcs/</link>
		<comments>https://wizardlike.ca/blog/2010/05/fmcs/#comments</comments>
		<pubDate>Fri, 28 May 2010 14:49:07 +0000</pubDate>
		<dc:creator>Mike Burrell</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[family]]></category>
		<category><![CDATA[holiday]]></category>
		<category><![CDATA[Pola]]></category>

		<guid isPermaLink="false">http://wizardlike.ca/blog/?p=283</guid>
		<description><![CDATA[I'm going to be going to attending FMCS 2010 in Kananas [...]]]></description>
			<content:encoded><![CDATA[<p>I’m going to be going to attending <a href="http://pages.cpsc.ucalgary.ca/~robin/FMCS/FMCS10/FMCS10.html">FMCS 2010</a> in Kananaskis—not far from Calgary—in a couple weeks. I’ll be giving a talk on the implementation of Pola in some capacity, though I haven’t figured out how broadly scoped or what to focus on.</p>
<p>I’m getting pretty psyched about it. The conference will be fun if it’s anything like I remember FMCS 2004 to be. The location is amazing. Plus after that I get to spend some time in Calgary with my parents and hanging out with Brian and, probably most importantly but least awesomely, working on my thesis.</p>
]]></content:encoded>
			<wfw:commentRss>https://wizardlike.ca/blog/2010/05/fmcs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Itanium in possession!</title>
		<link>https://wizardlike.ca/blog/2010/05/itanium-in-possession/</link>
		<comments>https://wizardlike.ca/blog/2010/05/itanium-in-possession/#comments</comments>
		<pubDate>Tue, 04 May 2010 01:18:44 +0000</pubDate>
		<dc:creator>Mike Burrell</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[assembly]]></category>
		<category><![CDATA[Itanium]]></category>

		<guid isPermaLink="false">http://wizardlike.ca/blog/?p=269</guid>
		<description><![CDATA[This is a follow-up to this post. Mark was magnanimousl [...]]]></description>
			<content:encoded><![CDATA[<p>This is a follow-up to <a href="http://wizardlike.ca/blog/2010/04/itanium/">this post</a>. Mark was magnanimously amazing and bought an Itanium machine for “the lab”. It’s currently sitting in my apartment. I’ll make another post tomorrow, I expect, where I actually get to play with it properly, but I thought at the very least I’d make a post about the headaches of actually getting it working.</p>
<p><a href="http://wizardlike.ca/pictures/Nerd%20stuff/Itanium">Go through the pictures</a> and read the running commentary because I’m not going to repeat the pictures here.</p>
<p>Sadly the machine is <i>noisy</i> and relatedly probably quite a power sucker. It’s in the corner of the living room, not far from where Jasna’s office is so I’m not going to be able to leave it on very often, I don’t think. The noise would probably drive Jasna crazy.</p>
<p>I should say I still haven’t got a chance to really sit down and <i>play</i> with it—namely play with the assembler—like I planned because HP-UX needs so much more setting up. I’m going to have to install pretty well the entire GNU userland because HP’s userland is absolute garbage.</p>
]]></content:encoded>
			<wfw:commentRss>https://wizardlike.ca/blog/2010/05/itanium-in-possession/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resonating eyeballs and thesis envy</title>
		<link>https://wizardlike.ca/blog/2010/04/resonating-eyeballs-and-thesis-envy/</link>
		<comments>https://wizardlike.ca/blog/2010/04/resonating-eyeballs-and-thesis-envy/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 02:45:07 +0000</pubDate>
		<dc:creator>Mike Burrell</dc:creator>
				<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://wizardlike.ca/blog/?p=264</guid>
		<description><![CDATA[Through reddit I found the story of The Ghost in the Ma [...]]]></description>
			<content:encoded><![CDATA[<p>Through reddit I found the story of <a href="http://www.psy.herts.ac.uk/ghost/ghost-in-machine.pdf">The Ghost in the Machine</a>, the story of a man who had a ghostly vision, a grey blob out of the corner of his eye. I won’t retell the whole story, but he eventually tracked it down to a 19Hz standing wave where he’d had the sighting. 19Hz is suspiciously close to what is documented to be the resonant frequency of the human eyeball <i>in vivo</i>. The belief is that a vibrating eyeball—perhaps in conjunction with other documented effects of “uneasiness” due to infrasonic ambience—leads to ghostly visions.</p>
<p>The 19Hz hypothesis was bolstered by taking it to <a href="http://www.psy.herts.ac.uk/ghost/Something-in-the-Cellar.pdf">other notoriously haunted places</a>.</p>
<p>As I dug deeper and did more research, the whole thing felt a bit too neat and tidy, as if I were playing out a Fringe plot. Supporting the whole hypothesis is a <a href="http://www.dtic.mil/cgi-bin/GetTRDoc?AD=ADA030476&#038;Location=U2&#038;doc=GetTRDoc.pdf">NASA technical report from 1976</a>, which somehow adds to the 1-hour drama aesthetic.</p>
<p>I still have to go through the NASA technical report in detail, but I had a bit of jealousy when I got to the preface and saw it was actually a Ph.D. thesis. Every now and then I get a twinge of thesis envy. Could there possibly be a more badass thesis than determining the resonant frequency of human eyeballs? <b>For NASA?</b> In truth, if I were doing my Ph.D. thesis in 1976, there’s no doubt I’d be doing something boring and computer-related. Sigh.</p>
<p>I’m actually really disappointed no one’s actually tried out—or published, at any rate—this 19Hz hypothesis experimentally. I need to set up some subwoofers around campus and see if any ghost sightings come out of it.</p>
]]></content:encoded>
			<wfw:commentRss>https://wizardlike.ca/blog/2010/04/resonating-eyeballs-and-thesis-envy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Itanium</title>
		<link>https://wizardlike.ca/blog/2010/04/itanium/</link>
		<comments>https://wizardlike.ca/blog/2010/04/itanium/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 14:30:30 +0000</pubDate>
		<dc:creator>Mike Burrell</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[assembly]]></category>
		<category><![CDATA[Itanium]]></category>
		<category><![CDATA[Pola]]></category>

		<guid isPermaLink="false">http://wizardlike.ca/blog/?p=242</guid>
		<description><![CDATA[Yes, I'm a computer architecture nerd. I expect this wo [...]]]></description>
			<content:encoded><![CDATA[<p>Yes, I’m a computer architecture nerd. I expect this won’t surprise anyone.</p>
<p>The recent story on <a href="http://arstechnica.com/microsoft/news/2010/04/microsoft-its-the-end-of-the-line-for-itanium-support.ars">Microsoft ending support for Itanium</a> (side note: this is hardly news. No one ran Windows on Itanium in the first place) rekindled my love affair with the Itanium architecture. Every six to twelve months I become infatuated with it all over again.</p>
<p>My infatuation usually dies down when I realize the Itanium is out of reach for mere mortals. Sometimes I day dream about when I’ve accidentally stumbled into money and I’m able to afford one. It’s hard to find a new Itanium server for under $30k and playing around with the online configurators it’s not hard to run yourself into the half a million dollar range.</p>
<p>Today’s different, though: today I decided to check out Ebay. Used Itanium servers are actually very cheap. <a href="http://cgi.ebay.com/HP-AB333A-Integrity-RX2620-Itanium-2-1-3GHz-2GB-RAM-2U_W0QQitemZ360249685995QQcmdZViewItemQQptZCOMP_EN_Servers?hash=item53e08df7eb#ht_1361wt_1030">Here’s one</a> for $340. It’s only about 6 or 7 years out-of-date, too. Being out-of-date with Itanium isn’t such a big deal since they were never in-date to begin with. The prospect that I might be able to buy myself one as a graduation present—when I have time to play with it—is exciting.</p>
<p>I won’t bore you with the details of Itanium and why it failed in its promise to be the next big saviour, the one computer architecture to bind them all. I was actually going to write about why I love the Itanium so much, but before I knew it I’d written six paragraphs about how beautiful the architecture is and realized no one but me would ever care to read it. Suffice it to say it’s the nicest architecture I’ve ever seen, from the perspective of someone who truly enjoys writing assembly code, the perfect balance between exposing the architecture and hiding away the mundane details that sometime plagued RISC architectures. Whenever someone foolishly asks me about Itanium—don’t worry, I’m usually able to restrain myself—I describe it as “everything SPARC should have been”, SPARC being one of the more elegant RISC architectures to date.</p>
<p>For my purposes it doesn’t matter if Itanium is practical or popular or well-fabricated or none of the above since it’s just for my own enjoyment. One of the biggest problems is that no one’s managed to write a suitable compiler for it. That suits me just fine since I’d rather be writing assembly code by hand or writing my own compiler for it. I’m actually half convinced that if anyone actually is going to write a brilliant compiler for Itanium, one that intelligently takes advantage of all its speculative loads and rotating register windows and similar toys that I like to drool over, it’s going to be a compiler that has a serious leg up in static analysis, maybe for a language that’s been seriously restricted, for which my research would be appropriate.</p>
<p>Well I’m not so arrogant as to think that I can write a compiler for Itanium where so some of the world’s top back-end developers have failed before. Even if failure is nigh guaranteed, it would be a really fun challenge, and it’s always more fun when the challenge is inherent in the beauty of what you’re working with. I think I may have to seriously put aside a few hundred dollars for after graduation so I have this to play with.</p>
]]></content:encoded>
			<wfw:commentRss>https://wizardlike.ca/blog/2010/04/itanium/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>LambdaVM failure</title>
		<link>https://wizardlike.ca/blog/2010/01/lambdavm-failure/</link>
		<comments>https://wizardlike.ca/blog/2010/01/lambdavm-failure/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 00:22:34 +0000</pubDate>
		<dc:creator>Mike Burrell</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[Haskell]]></category>
		<category><![CDATA[Pola]]></category>

		<guid isPermaLink="false">http://wizardlike.ca/blog/?p=188</guid>
		<description><![CDATA[The LambdaVM project is actually a really brilliant pro [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.cs.rit.edu/~bja8464/lambdavm/">LambdaVM</a> project is actually a really brilliant project. It’s a modification of GHC to target the JVM. I installed it in October of last year and played around with it, feeling that it might actually have a place in helping spread the gospel of Pola.</p>
<p>The thing is I can’t expect people to download the source to Pola if they want to play around with it, so I have to provide <a href="http://projects.wizardlike.ca/projects/pola/files">pre-compiled binaries</a>. OS X, Windows and Solaris are easy for me to produce binaries for, but then you have to think about Linux, BSD, OpenSolaris, 64-bit Windows, etc., on various platforms. Traditionally I have about 6 or 7 binaries up there for the most popular architectures—past releases have been most popular with x86 Debian and x86 Windows—but every time I make a new release I have to rebuild them all.</p>
<p>So I was hoping to have a JVM version of Pola to put up there as a catch-all for architectures I hadn’t had a chance to build for yet. While the LambdaVM project has treated me fantastically well for little toy examples, it doesn’t do well for Pola. I tried it and it crashed after about 2 minutes after running out of heap space. The stack trace showed it was still doing type inference…after <b>two minutes</b>…something which Pola natively compiled does in less than a hundredth of a second.</p>
<p>I’m sure if I fiddled around with it I could get it sort of working, but it doesn’t seem like a good use of my time, especially since the end result will be huge—the JAR file is 18MB, compared to 2MB for an uncompressed binary—and many orders of magnitude slower and since I still have hopes of graduating soon.</p>
<p>Still, the LambdaVM project is pretty awesome. I hope it ends up kicking some ass.</p>
]]></content:encoded>
			<wfw:commentRss>https://wizardlike.ca/blog/2010/01/lambdavm-failure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Off to Holland</title>
		<link>https://wizardlike.ca/blog/2009/10/off-to-holland/</link>
		<comments>https://wizardlike.ca/blog/2009/10/off-to-holland/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 23:00:11 +0000</pubDate>
		<dc:creator>Mike Burrell</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[family]]></category>
		<category><![CDATA[holiday]]></category>
		<category><![CDATA[Jasna]]></category>
		<category><![CDATA[peeks]]></category>
		<category><![CDATA[Pola]]></category>

		<guid isPermaLink="false">http://www.wizardlike.ca/blog/?p=124</guid>
		<description><![CDATA[I'm currently hanging out at my gate in Pearson airport [...]]]></description>
			<content:encoded><![CDATA[<p>I’m currently hanging out at my gate in Pearson airport. In a couple hours I’ll be on my way to Paris and tomorrow morning I’ll catch my connecting flight to Amsterdam and then I take the train to Utrecht to see Jasna’s sister, Ana, and her husband, Andre.</p>
<p>Jasna and I aren’t very good with separation, though I think this time went better than most. It could be that it’s a shorter separation this time—five days, in contrast to Jasna’s recent two-month trip—or that we’re too tired from last night’s Hallowe’en party to get as worked up. Maybe we’re just getting better at it, though. It’s not like <i>no</i> tears were shed, but I think we did relatively well.</p>
<p>Unfortunately today my camera battery decided to crap out on me. The upside to this is Jasna lent me her (very awesome) DSLR camera for the trip. I’ll try to keep pictures of blondes down to a minimum. Mostly I’m excited to see Ana and Andre, but I think they’ll be busy most of the time, so I’ll probably venture into Amsterdam at least once to entertain myself. I brought the camera cable with me, so watch my <a href="/pictures">photo gallery</a> in the next day or two for pictures to start appearing.</p>
<p>The conference—and my presentation there—I haven’t thought a whole lot about yet. I’ll have to disappear to Eindhoven, which I think is only about half an hour from Utrecht—but then again maybe everything’s half an hour away from everything in the Netherlands, who knows—and see what’s going on there. I’m fairly excited to see what FOPARA ends up being like since this is the first year the workshop’s being done. I’m especially excited to see the Hume project people, like Kevin Hammond, since I’ve never met any.</p>
<p>I should say there’s still a lot of work that’s going on behind the scenes, work even on what I’m going to present to FOPARA. While I was in Calgary we decided to put in a new typing system based on bunched logics which deals elegantly with a lot of the problems with <tt>peek</tt>s that we’ve been sorting out in Pola, plus some new features.</p>
]]></content:encoded>
			<wfw:commentRss>https://wizardlike.ca/blog/2009/10/off-to-holland/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Another successful trip to Calgary</title>
		<link>https://wizardlike.ca/blog/2009/10/another-successful-trip-to-calgary/</link>
		<comments>https://wizardlike.ca/blog/2009/10/another-successful-trip-to-calgary/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 20:47:23 +0000</pubDate>
		<dc:creator>Mike Burrell</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[algebra]]></category>
		<category><![CDATA[bounds]]></category>
		<category><![CDATA[peeks]]></category>
		<category><![CDATA[Pola]]></category>

		<guid isPermaLink="false">http://www.wizardlike.ca/blog/?p=114</guid>
		<description><![CDATA[My visit this week to Calgary to work with Brian and Ro [...]]]></description>
			<content:encoded><![CDATA[<p>My visit this week to Calgary to work with Brian and Robin is coming to an end and has definitely paid off again. We have another day at least of work ahead of us, but probably not much more real work will get done by then since we still have the <a href="http://www.wizardlike.ca/blog/2009/09/fopara-paper-accepted/">FOPARA paper</a> to finish up and get camera ready. But, just in the past couple of days we’ve already made tremendous progress in improving and stabilizing the language. It won’t be too much longer before “core Pola” is finalized.</p>
<p>I should say there was one interesting result that Brian told me about. The <b>peek</b> construct is a unique construct to the language, which allows one to, under some restrictions, break affineness, i.e., allows one to reference a variable multiple times to give the programmer more expressiveness. It’s a delicate business since affineness is what keeps Pola programs polynomial-time, particularly in the context of recursion. As it turns out, if you remove the recursion-symbol restrictions on <b>peek</b>s—allowing recursion within the condition of a <b>peek</b>—but keep the other restrictions on peeks, you exactly capture PSPACE! We demonstrated this by changing just a couple lines of code, allowing recursion, and coding up <a href="http://en.wikipedia.org/wiki/True_quantified_Boolean_formula">QSAT</a> to play with. <span id="more-114"></span></p>
<p>Exactly the cleanest and most expressive way to impose restrictions on recursion on <b>peek</b>s while staying in P, which is the real goal of Pola, hasn’t been entirely hammered out yet. There are any of numbers of ways to get it to work, but no one’s sure if they’re clean enough. I’m extremely excited that, except for the recursion business, the mechanism of type-checking <b>peek</b>s has finally been solved, extremely cleanly using <a href="http://en.wikipedia.org/wiki/Bunched_logic">bunched logics</a>. It had been a real mess before and the new formulation is really a thing of beauty. It’s what I’ve always wanted for <b>peek</b>s, even if I’d never heard of bunched logics before.</p>
<p>Aside from the matter of me finding the time to actually finish implementing these things—though I’m still making good progress!—is the matter of inferring bounds, which from my (very practically based) viewpoint is the whole motivation for the language. The initial write-up I shoehorned into the end of the FOPARA paper is definitely on the right track, but the details need to be cleaned up some.</p>
]]></content:encoded>
			<wfw:commentRss>https://wizardlike.ca/blog/2009/10/another-successful-trip-to-calgary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
