Technology of Object-Oriented Languages and Systems - Tools-25
Upscaling the CLOS Inheritance Mechanism for Multidimensional Objects
Melbourne, Austrailia
November 24-November 28
ISBN: 0-8186-8485-2
The paper generalizes the linearization technique known in Lisp-based languages to multidimensional objects. A general principle is defined and applied to memory representations and methods. Linearization is done on a dimension-per-dimension basis. Such application, simplified in the case of representations, has to be complemented in the case of methods, first by a condition verified in practice and secondly by a rule quite simple to apply. Combinations become purely declarative, with no further need for the OOP classical imperative anti-modular send-super construct (call-next-method in CLOS, super in Smalltalk). Quite sophisticated combination methods with multiple roles as done in CLOS are supported. Multiple dispatch is also supported. This paper also looks at the desirable properties of a linearization algorithm fit for use in this context. Besides stability and monotonicity, already known, a third property is brought into light. Because it conflicts with monotonicity, a refined study was conducted: the paper proposes three candidate solutions, and selects the best compromise.
Index Terms:
multidimensional objects, multiple inheritance, multiple dispatch, linearization, combination, role, qualifier, standard method combination. monotonicity, stability, congruency, efficiency, pure declarativeness, invocation sequence diagram, regularity condition, prevalence rule.
Citation:
Henry J. Borron, "Upscaling the CLOS Inheritance Mechanism for Multidimensional Objects," tools, pp.297, Technology of Object-Oriented Languages and Systems - Tools-25, 1997