Minor changes are by default collapsed in the page history.
No changes
The page does not exist yet.
Failed to load changes
Version by on
Leave Collaboration
Are you sure you want to leave the realtime collaboration and continue editing alone? The changes you save while editing alone will lead to merge conflicts with the changes auto-saved by the realtime editing session.
Much recent work in the design of object-oriented programming languages has been focusing on identifying suitable features to support so-called scalable extensibility, where the usual extension mechanism by inheritance works in different scales of software components?that is, classes, groups of classes, groups of groups and so on. Its typing issues has usually been addressed by means of dependent type systems, where nested types are seen as properties of objects. In this work, we seek instead for a different solution, which can be more easily applied to Java-like languages, in which nested types are considered properties of classes. We introduce the mechanism of variant path types, which provide a flexible means to express intra-group relationship (among classes) that has to be preserved through extension. In particular, improving and extending existing works on groups and exact types, we feature the new notions of exact and inexact qualifications, providing rich abstractions to express various kinds of set of objects, with a flexible sub typing scheme.We formalize a safe type system for variant path types on top of Featherweight Java. Our development results in a complete solution for scalable extensibility, similarly to previous attempts based on dependent type systems.
Proceedings of the 22nd annual ACM SIGPLAN Conference on Object Oriented Programming Systems, Languages and Applications (OOPSLA '07), Montreal, Quebec, Canada