A monotonic superclass linearization for Dylan

  • Authors:
  • Kim Barrett;Bob Cassels;Paul Haahr;David A. Moon;Keith Playford;P. Tucker Withington

  • Affiliations:
  • -;-;-;-;-;-

  • Venue:
  • Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
  • Year:
  • 1996

Quantified Score

Hi-index 0.00

Visualization

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 monotonic, easily described, strictly observes local precedence order, and produces the same ordering as CLOS when that is monotonic. We present an implementation based on merging and a survey of class heterarchies from several large programs, analyzing where commonly used linearizations differ.