Program |
 |
|
|
Find in Program |
 |
|
|
Page |
 |
|
|
Basket |
 |
|
view, help
"Scalable Extensibility via Nested Inheritance"
|
|
|
|
Scalable Extensibility via Nested Inheritance
Ballroom A-B Tuesday, 15:30, 30 minutes 7 | · | 8 | · | 9 | · | 10 | · | 11 | · | 12 | · | 13 | · | 14 | · | 15 | · | 16 | · | 17 | · | 18 | · | 19 | · | 20 | · | 21 |
Nathaniel Nystrom, Cornell University Stephen Chong, Cornell University Andrew Myers, Cornell University
Inheritance is a useful mechanism for reusing and factoring code.
However, it has limitations for building extensible systems. We
describe nested inheritance, a mechanism that addresses some of the
limitations of ordinary inheritance and also provides much or all of the
functionality of previous code reuse mechanisms.
Using our experience with an extensible compiler framework, we show
how nested inheritance can be used to construct this and other highly
extensible software frameworks. The essential aspects of nested
inheritance have been formalized in a simple object-oriented
language with an operational semantics and type system; the type system
of this language is sound, so no run-time type checking is required to
implement it. Nested inheritance has been added to the Java
language as an unobtrusive extension; we describe how our
prototype implementation translates code using this new feature to
ordinary Java code, without duplicating inherited code.
|