Abstract
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.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
34 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Persimmon: Nested Family Polymorphism with Extensible Variant Types;Proceedings of the ACM on Programming Languages;2024-04-29
2. Extensible Metatheory Mechanization via Family Polymorphism;Proceedings of the ACM on Programming Languages;2023-06-06
3. Compositional Programming;ACM Transactions on Programming Languages and Systems;2021-09-30
4. A new way of crosscutting roles in set oriented programming;Journal of King Saud University - Computer and Information Sciences;2019-12
5. Familia: unifying interfaces, type classes, and family polymorphism;Proceedings of the ACM on Programming Languages;2017-10-12