Previous article

Next article

An enhanced form of dynamic untyped object-based inheritance

Anthony Savidis, ICS-FORTH, Greece



PDF Icon
PDF Version


We present an enhanced form of untyped object-based inheritance for classless languages, as implemented in our Delta language, comparing to the prevalent practices of delegation and embedding. Through a case scenario we reveal a design flaw of delegation that damages polymorphism and extensibility. Then, we show why embedding is impractical for object-based uninheritance (undoing inheritance on individual objects) and non-monotonic object evolution (dynamically adding or removing object members). We introduce dynamic object trees, adopting the metaphoric notions of inheritance from class-based languages, without compromising the compositional flexibility of untyped inheritance. We implement inherit and uninherit as library functions, discussing how our member lookup algorithm preserves monotonicity. Finally, we show that if prototypes are prototypical objects they may break their own invariant. To this end, we propose class objects as a more precise metaphor, implementing in the Delta language a function for dynamic mixin composition of class objects.

Note: Due to the typographical sophistication of this article, no HTML version is available. Please use the PDF version.

About the author


Anthony Savidis is an Associate Professor of 'Programming Languages and Software Engineering' at the Department of Computer Science, University of Crete, and the Technical Coordinator of the HCI Laboratory, Institute of Computer Science - FORTH. His e-mail address is

Anthony Savidis: "An enhanced form of dynamic untyped object-based inheritance", in Journal of Object Technology, vol. 7, no. 4, May-June 2008, pp. 101-122

Previous article

Next article