Vaidas Gasiunas, Mira Mezini, Klaus Ostermann.
Dependent Classes. OOPSLA'07.
Virtual classes allow nested classes to be refined in subclasses. In this way nested classes can be seen as dependent
abstractions of the objects of the enclosing classes. Expressing dependency via nesting, however, has two limitations:
Abstractions that depend on more than one object cannot be
modeled and a class must know all classes that depend on
its objects. This paper presents dependent classes, a generalization of virtual classes that expresses similar semantics
by parameterization rather than by nesting. This increases
expressivity of class variations as well as the flexibility of
their modularization. Besides, dependent classes complement multimethods in scenarios where multi-dispatched abstractions rather than multi-dispatched methods are needed.
They can also be used to express more precise signatures
of multimethods and even extend their dispatch semantics.
We present a formal semantics of dependent classes and
a machine-checked type soundness proof in Isabelle/HOL, the first of this kind for a language with virtual classes
and path-dependent types.
I enjoyed this talk at OOPSLA, although I was not able to see the end, and I enjoyed the paper even more. There's been so much work on virtual classes in recent years, and while I very clearly see a strong practical motivation for this work, I admit that I find it difficult to keep track of the technical trade-offs between different approaches. This, plus the persistent limitations mentioned in the abstract, lends some of the papers an unfortunately tedious feel (to me). I find this work refreshing, since it introduces a substantial new idea in this area.
(And of course, one of the authors posts here regularly...)
Recent comments
25 weeks 4 days ago
25 weeks 4 days ago
25 weeks 4 days ago
47 weeks 5 days ago
52 weeks 15 hours ago
1 year 1 week ago
1 year 1 week ago
1 year 4 weeks ago
1 year 8 weeks ago
1 year 8 weeks ago