Publication | Closed Access
Scalable extensibility via nested inheritance
149
Citations
17
References
2004
Year
Unknown Venue
EngineeringJava LanguageSoftware SystemsSoftware EngineeringSoftware AnalysisFormal VerificationNested InheritanceDependently Typed ProgrammingCompilersProgramming LanguagesHigh-level Programming LanguagePolymorphism (Computer Science)Computer ScienceType SystemExtensible LanguageOperating SystemsProgram AnalysisFormal MethodsObject-oriented ProgrammingOrdinary Inheritance
Inheritance is a useful mechanism for factoring and reusing code. However, it has limitations for building extensible systems. We describe <i>nested inheritance</i>, a mechanism that addresses some of the limitations of ordinary inheritance and other code reuse mechanisms. Using our experience with an extensible compiler framework, we show how nested inheritance can be used to construct highly extensible software frameworks. The essential aspects of nested inheritance are 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 and no run-time type errors can occur. We describe our implementation of nested inheritance as an unobtrusive extension of the Java language, called Jx. Our prototype implementation translates Jx code to ordinary Java code, without duplicating inherited code.
| Year | Citations | |
|---|---|---|
Page 1
Page 1