Wednesday, October 24, 2007

OOPSLA Day 3

And so to day 3, and without further ado, the papers I found most interesting:

StreamFlex: High throughput stream programming in Java A mini-solution to real time stream programming, because the general problem, that is real time programming is horrible. Streaming apps have no buffering and no messages can be dropped. Plus all the usual real time constraints. In particular, garbage collection is the big headache. They have an interesting combination of channels, capsules and transient and stable regions of the heap, and an interesting, simple variation on ownership types. Plus region based memory management and transactional memory.

Can programming be liberated from the two-level style? Multi-level programming with DeepJava Presented a cool meta-type system, but I wasn't sure how it was different from other meta-type systems. Nice though. The interesting bits were their potency annotations that give a nice way to specify types in classes lower down the chain of meta-types than the immediate implementer. They also suggest that the system can be used as an alternative to generics, which looks kind of virtual types like, I must look closer at that.

Modular typestate checking of aliased objects Can prevent a lot (apparently) of dynamic errors (or exceptions) statically (always a good thing) using fractional permissions. Seems a nice, little system and deserves a closer look because of the reference to a pack/unpack system, possibly similar to existential types.

Establishing object invariants with delayed types This seems like a big, clever solution to a small, dumb problem, however, the motivation and evaluation seemed convincing. The problem seems to be handling constructors and establishing invariants. The solution is interesting, using delayed types (obviously). James noted an interesting connection to ownership types that deserves further investigation.

No comments: