A Monotonic Superclass Linearization for Dylan. Kim Barrett . Bob Cassels [email protected]>. Paul Haahr. In computing, the C3 superclass linearization is an algorithm used primarily to obtain the order It was first published at the OOPSLA conference, in a paper entitled “A Monotonic Superclass Linearization for Dylan”. It was adapted to the. The C3 superclass linearization algorithm is more intuitive and allows for greater monotonicity of method orderings, a consistent superclass linearization.

Author: Ararg Vigis
Country: Paraguay
Language: English (Spanish)
Genre: Science
Published (Last): 11 December 2008
Pages: 77
PDF File Size: 8.96 Mb
ePub File Size: 15.53 Mb
ISBN: 225-1-36956-210-9
Downloads: 47578
Price: Free* [*Free Regsitration Required]
Uploader: Manris

Please help us clarify the article. Linearization Closed-world assumption Computer science Monotonic kinearization Object-oriented programming Clos network Mathematical optimization Merge version control Multiple inheritance. Robert Giles Wilson 1 Estimated H-index: Object-oriented programming with flavors.

A Monotonic Superclass Linearization for Dylan

The Art of the Metaobject Protocol. The name “C3” is not an initialism. Advanced Search Include Citations Disambiguate. C3 exists on CPAN.

Level-based data sharing for digital content production. In computingthe C3 superclass linearization is an algorithm used primarily to obtain the order in which methods should be inherited the “linearization” in the presence fo multiple inheritanceand is often termed Method Resolution Order MRO.

C3 linearization – Wikipedia

Gregor Kiczales 39 Estimated H-index: View in Source Cite this paper. Moon and Keith Playford and P. If at some point no good head can be selected, because the heads of all remaining lists appear in any one tail of the lists, then the merge is impossible to compute due to inconsistent orderings of dependencies in the inheritance hierarchy and no linearization of the original class exists. It is also available as an alternative, non-default MRO in the core of Perl 5 starting with version 5.


Wikipedia articles needing clarification from April All Wikipedia articles needing clarification. The Dylan superclass linearization is sometimes counter-intuitive. Ellis 1 Estimated H-index: However, this will result in an infinitely looping recursion in the presence of a cyclic class hierarchy. This page was last edited on 28 Aprilat Retrieved from ” https: In order to allow for more optimizations, especially compression of dispatch tables, which requires monotonicity of method orderings, a consistent superclass linearization algorithm is needed.

The name C3 refers to the three important properties of the resulting linearization: The C3 superclass linearization algorithm is more intuitive and superclase for greater optimization.

By using this site, you agree to the Terms of Use and Privacy Policy.

Proposal for a monotonic multiple inheritance linearization. Mark Stefik 32 Estimated H-index: To detect such a cycle and to break the monotonicc recursion and to reuse the results of previous computations as an optimizationthe recursive invocation should be shielded against re-entrance of a previous argument by means of a cache or memoization.


Roland Ducournau 4 Estimated H-index: Object-oriented programming Programming language implementation. Tucker Withington in a paper html version.

C3 linearization

Preserving and reusing intermediate data. A superclass linearization also known as a class precedence list is used for resolving conflicts among multiply-inherited superclasses which provide differing definitions of the same method.

Retrieved August 14, Bertrand Meyer 38 Estimated H-index: Views Read Edit View history.

Smyth 1 Monootnic H-index: Recent work has defined several desirable characteristics for linearizations, the most important being monotonicity, which prohibits inherited properties from skipping over direct superclasses. A naive divide and conquer approach to computing the linearization of a class may invoke the cor recursively to find the linearizations of parent classes for the merge-subroutine. Moon, Keith Playford, and P. 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 History of Python. The process of selecting and removing a good head to extend the output list is repeated until all remaining lists are exhausted.

Are you looking for