2003
DOI: 10.1145/937563.937567
|View full text |Cite
|
Sign up to set email alerts
|

Jam---designing a Java extension with mixins

Abstract: 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 ha… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
45
0

Year Published

2004
2004
2012
2012

Publication Types

Select...
5
2

Relationship

0
7

Authors

Journals

citations
Cited by 55 publications
(45 citation statements)
references
References 12 publications
(17 reference statements)
0
45
0
Order By: Relevance
“…Especially, calculi for mixins [28,18,1,36], traits [45], family polymorphism and virtual classes [35,27,32,20], path-dependent types [56,55], open and dependent classes [22,29], and nested inheritance [54] either support only the refinement of single classes or expect the classes that form a semantically coherent unit (i.e., that belong to a feature) to be located in a physical module that is defined in the host programming language. For example, a virtual class is by definition an inner class of the enclosing object, and a classbox is a package that aggregates a set of related classes.…”
Section: Feature-oriented Programsmentioning
confidence: 99%
See 1 more Smart Citation
“…Especially, calculi for mixins [28,18,1,36], traits [45], family polymorphism and virtual classes [35,27,32,20], path-dependent types [56,55], open and dependent classes [22,29], and nested inheritance [54] either support only the refinement of single classes or expect the classes that form a semantically coherent unit (i.e., that belong to a feature) to be located in a physical module that is defined in the host programming language. For example, a virtual class is by definition an inner class of the enclosing object, and a classbox is a package that aggregates a set of related classes.…”
Section: Feature-oriented Programsmentioning
confidence: 99%
“…A program that is decomposed into features is called henceforth a feature-oriented program. 1 Beside the decomposition of programs into feature modules, the concept of a feature is useful for distinguishing different, related programs which together make up a software product line [37,23]. Typically, programs of a common domain share a set of features but also differ in other features.…”
mentioning
confidence: 99%
“…Since a subclass can be implemented before its superclass has been implemented, mixins remove most of the dependencies of the subclass on the superclass. Mixins have become a focus of active research in many communities and contexts: software engineering [77,207], programming language design [38,221,83,8], module systems [7,113], and distributed mobile code applications [32]. While mixins solve many problems encountered with multiple inheritance, their "linearization" strategy may still pose obstacles to code reuse.…”
Section: Diversity In Implementationmentioning
confidence: 99%
“…Mixins [14,22,2] are (sub)class definitions parameterized over a superclass and were introduced as an alternative to standard class inheritance. A mixin could be seen as a function that, given one class as an argument, produces another class, by adding or overriding specific sets of methods.…”
Section: Introductionmentioning
confidence: 99%