Abstract
Object-oriented languages with multiple inheritance and automatic conflict resolution typically use a linearization of superclasses to determine which version of a property to inherit when several superclasses provide definitions. Recent work has defined several desirable characteristics for linearizations, the most important being monotonicity, which prohibits inherited properties from skipping over direct superclasses. Combined with Dylan's sealing mechanism, a monotonic linearization enables some compile-time method selection that would otherwise be impossible in the absence of a closed-world assumption. The Dylan linearization is monotonie, easily described, strictly observes local precedence order, and produces the same ordering as CLOS when that is monotonie. We present an implementation based on merging and a survey of class heterarchies from several large programs, analyzing where commonly used linearizations differ. © 1996 ACM.
Cite
CITATION STYLE
Barrett, K., Cassels, B., Haahr, P., Moon, D. A., Playford, K., & Withington, P. T. (1996). A monotonic superclass linearization for Dylan. SIGPLAN Notices (ACM Special Interest Group on Programming Languages), 31(10), 69–82. https://doi.org/10.1145/236338.236343
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.