Proceedings of the 21st Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications 2006
DOI: 10.1145/1167473.1167477
|View full text |Cite
|
Sign up to set email alerts
|

Statically scoped object adaptation with expanders

Abstract: This paper introduces the expander, a new object-oriented (OO) programming language construct designed to support object adaptation. Expanders allow existing classes to be noninvasively updated with new methods, fields, and superinterfaces. Each client can customize its view of a class by explicitly importing any number of associated expanders. This view then applies to all instances of that class, including objects passed to the client from other components. A form of expander overriding allows expanders to i… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
8
0

Year Published

2008
2008
2012
2012

Publication Types

Select...
4
4
2

Relationship

0
10

Authors

Journals

citations
Cited by 51 publications
(8 citation statements)
references
References 24 publications
0
8
0
Order By: Relevance
“…Expanders [WSM06] is a technique for statically scoped object adaptation that bears some similarity to the roles of OT/J. Like OT/J it is implemented as an extension to the Java language, called eJava.…”
Section: Related Workmentioning
confidence: 99%
“…Expanders [WSM06] is a technique for statically scoped object adaptation that bears some similarity to the roles of OT/J. Like OT/J it is implemented as an extension to the Java language, called eJava.…”
Section: Related Workmentioning
confidence: 99%
“…Three main categories of such techniques can be listed: support for virtual classes [18], isolation of software versions (Java class loader [17], ChangeBox [7], and ObjectSpace [4]), and finegrained scoping of variations (selector namespaces, contextoriented programming [29], classbox [1]). Finally, the migration of instances relates to the problem of schema evolution [25] and techniques to convert between types (expanders [32], translation polymorphism [13], implicit conversion [27]). None of these techniques is in itself sufficient to enable dynamic software update though.…”
Section: Other Approachesmentioning
confidence: 99%
“…Furthermore, as discussed in Section 2, we need to compose the Language of Namespaces and Traits with an object model that caters to the specific demands of component coordination. Such a model is Open Extensible Imperative Class [12] that defines an imperative object (or component) model supporting modular class extensions [14], [15], [23]. Modular class extension permit a non-invasive refinement of existing object-oriented domain abstractions.…”
Section: Towards a Coordination Modelmentioning
confidence: 99%