OOPSLA '04

Program
Technical Program
  Invited Speakers
  Technical Papers
  Onward!
  Panels
  Practitioner Reports
  Tutorials
Workshops
DesignFest
Educators' Symposium
Demonstrations
Posters
Doctoral Symposium
Exhibits
Student Research Comp.
FlashBoF
 
Turing Lecture
 
Social Events
 
Week at a Glance
 
Final Program (1.5M .pdf)

Find in Program
 

Page
Printer-friendly

Basket
view, help

"Scalable Extensibility via Nested Inheritance"
Object-Oriented Programming, Systems, Languages and Applications
Home    Program    Housing & Transportation    Registration    Submissions    Wiki    Maps
 
  > Technical Program > Technical Papers > Inheritance

 : Tuesday

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.