Wednesday, August 08, 2007

ECOOP day 2

The day kicked off with Luca Cardelli's invited talk. This was a personal history of his involvement with OO theory (and practice to some extent) and type theory, which turns out to be a pretty good history indeed. Once again concurrency reared its ugly head as its Luca's current research area and he thinks its the next intersting thing.

Yi Lu - Validity Invariants and Effects - Lu and Potter's annual ECOOP paper was as interesting as expected. This year they extended ownership types with invariants, the idea being it is easier to reason about invariants in the presence of ownership types.

Non-null references by default in Java - was a case study on delarations that could be declared non-null or nullable and found that most could be non-null. They then argued that non-null should be the default, which seems fair, but is unlikely to happen in Java.

Burak Emir - Matching Objects with Patterns - Compares various OO pattern mathcing techniques and suggests a new one. Pattern matching seems like a good idea, but is sometimes criticised for being non-OO, will read the paper and decide...

I liked the talks on DirectFlow: a Domain-Specific Language for Information-Flow Systems and A Relational Model of Object Collaborations and its Use in Reasoning about Relationships, but don't have much to say about them, sorry.

I missed the talk on JavaGI, but I think I read an earlier version of the work (I seem to remember it being very powerful, but complex) and liked it so will go back and read the paper.

Aaron Turon - Metaprogramming with Traits - Uses a flexible version of traits to do metaprogramming (just like it says on the tin). They have an interesting type system that is hybrid structural/nominal. On a side note, I like traits, I think they are cool.

Shan Shan Huang - Morphing: Safely Shaping a Class in the Image of Others - more metaprogramming than morphing (classes do not change during execution), this seems powerful and generic and (relatively) easy to use. I've written "label checking" in my notes, but can't remember why now. An interesting view on this work is that they have a form of type-checked reflection, which is still a big open question at the moment. The claim that the language was more intuitive (has more "synergy" ) than the competition, was unsurprisingly provocative.

A Higher Abstraction Level using First-Class Inheritance Relations - An interesting idea that basically 'does components' by having a complex and novel form of inheritance.

No comments: