J&: Nested Inheritance and Intersection for Java

J& (pronounced “jet”) is an extension of Java that increases code extensibility and reuse using nested inheritance. Nested inheritance supports inheritance of packages and classes while allowing classes nested within to be overridden. This is a powerful mechanism for extending code.

The goal of the J& project is a type-safe programming language that makes code reuse much easier. In a conventional language, extending a large system can require either duplicating code—complicating code maintenance—or writing lots of boilerplate or glue code. J& supports type-safe, modular, scalable extensibility: the work required to modularly add a new feature tends to be proportional to the size of the feature, and extensions cannot introduce type errors.

J& is an outgrowth of work on the Polyglot extensible compiler framework. Polyglot has been ported to J&. An earlier version of the language was known as Jx.

Downloads

An initial release of the J& compiler is now available, released October 2006.

Papers and reports

Support

The development of J& has been supported by a number of funding sources, including DARPA Contract F30602-99-1-0533, monitored by USAF Rome Laboratory, ONR Grant N00014-01-1-0968, NSF Grants CNS-0208642, CNS-0430161, and CCF-0133302, an Alfred P. Sloan Research Fellowship, and an Intel Research Ph.D. Fellowship.