D. Ancona, G. Lagorio, and E. Zucca
Jam-designing a Java extension with
mixins
ACM Transactions on Programming Languages and Systems,
25(5):641-712, September 2003
In this paper we present Jam, an extension of the Java language
supporting mixins, that is, parametric heir classes. A mixin declaration
in Jam is similar
to a Java heir class declaration, except that it does not extend a
fixed parent class, but simply specifies the set of fields and methods
a generic parent should provide. In this way, the same mixin can be
instantiated on
many parent classes, producing different heirs, thus avoiding code
duplication and largely improving modularity and reuse. Moreover, as
happens for classes and interfaces, mixin names are reference types, and
all the classes
obtained by instantiating the same mixin are considered subtypes of the
corresponding type, hence can be handled in a uniform way through the
common interface. This possibility allows a programming style where
different ingredients are ``mixed'' together in defining a class; this
paradigm is somewhat similar to that based on multiple inheritance, but
avoids its complication.
The language has been designed with the main objective in mind to obtain,
rather than a new
theoretical language, a working and smooth extension of Java.
That means, on the design side, that we have faced the challenging problem
of integrating the
Java overall principles and complex type system with this new
notion; on the implementation side, that we have developed a Jam to
Java translator which makes Jam sources executable on every Java Virtual
Machine.
[ bib |
.pdf ]
Back
This file has been generated by
bibtex2html 1.43