J&: Nested Intersection for Scalable Software Composition |
J&: Nested Intersection for Scalable Software CompositionResearch Paper Tuesday, Oct 24, from 10:30 to 12:00
This paper introduces a programming language that makes it convenient to compose large software systems, combining their features in a modular way. J& supports nested intersection, building on earlier work on nested inheritance in the language Jx. Nested inheritance permits modular, type-safe extension of a package (including nested packages and classes), while preserving existing type relationships. Nested intersection enables composition and extension of two or more packages, combining their types and behavior while resolving conflicts with a relatively small amount of code. The utility of J& is demonstrated by using it to construct two composable, extensible frameworks: a compiler framework for Java, and a peer-to-peer networking system. Both frameworks support composition of extensions. For example, two compilers adding different, domain-specific features to Java can be composed to obtain a compiler for a language that supports both sets of features. Nathaniel Nystrom, Cornell University Xin Qi, Cornell University Andrew C. Myers, Cornell University
|