Another great day at POPL; although I - like the other MS people here - had my mind partly on other matters.
The day started with a wonderful talk from Chris Barker, from NYU. Chris is a linguist, but he uses ideas from functional programming. He made the interesting point that language also has a notion of side-effect, e.g. compare "john left the room" and "that idiot John left room". The phrase "that idiot" has had a side-effect on the semantics of the statement.
The heart of his talk is the fact that some constructions in language provide their own context, e.g. "John and Anna read the SAME book". Providing a meaning to SAME requires same to access the context, or in other words the continuation.Chris went on to propose a delimited control operator that could be used to give a semantics to SAME. This is a rather unusual control operator as it operates wrt another control operator. Moreover, as someone pointed out in the questions session, there is some ambiguity in the reduction. Chris made the insightful response that PL people struggle to remove ambiguity, whether NL is *full* of ambiguity!
That said, the PL coommunity should be talking more with the NL community, so this invited talk did a lot of good. Talking with people at lunch, everyone seemed very impressed with Chris' talk - so perhaps this will happen. Great talk, Chris.
I then listened to a great talk by Ronald Garcia, who managed to show how to simulate lazy evaluation in a CBV language with delimited control. This was VERY interesting - I think it's pretty surprising that it work. Indeed, Matthias seemed surprised and impressed. I need to read the details of this work.
I then went on a monster coercion-paper-thinking session with Nik. Two hours before and two hours after lunch. The good news is that I think we're finally getting somewhere thinking about polymorphism. [It also shows how much better it is to work with people in the room, rather than on the other end of an internet connection.] Maybe we will make the ICFP deadline after all...
I heard a great talk by Ross Tate about an optimization strategy where they actually don't rewrite the original program, but somehow store all the possible rewrites and then pass a cost function at the end to extract the final optimized program. This is something I've been wondering about for ages, as this is what database query optimizers do. I'm really excited to see someone formalizing this. I'm hoping to talk with Ross to see if they've considered the connection with database query optimization. I'd love to work on this myself.
I never miss a talk by Dino DiStefano if possible, and today was no exception. He gave a great talk about how they use a new notion of abduction to synthesize invariants for their space invader project. Dino's work is always very impressive: today it ranged from logic, to running the prototype over the entire linux kernel and showing the running times! Coolness.
Four of us M'Softies went for a stroll and then had a couple of cocktails to drown our sorrows. This was a great idea until we tried standing afterwards. Yikes! Jen's martinis are frightening strong it seems. We then went back to the hotel, met up with some more people and then went back to 45 Bistro. I had a spectacularly good meal with Nick [who uncharacteristically left early!], Thomas and Jens. (I strongly recommend the crab cake and osso bucco. Both were probably the best I've ever had.)