- C3 linearization
The C3 superclass linearization is an algorithm used primarily to obtain a consistent linearization of a
multiple inheritance hierarchy inobject-oriented programming . This linearization is used to resolve the order in which methods should be inherited, and is often termed "MRO" for Method Resolution Order. The name C3 refers to the three important properties of the resulting linearization: a consistent extended precedence graph, preservation of local precedence order, and monotonicity. It was first published at the1996 OOPSLA conference, in a paper entitled "A Monotonic Superclass Linearization for Dylan" [cite conference
date = 1996-06-28
title = A Monotonic Superclass Linearization for Dylan
url = http://www.webcom.com/haahr/dylan/linearization-oopsla96.html
booktitle =OOPSLA '96 Conference Proceedings
pages = 69–82
publisher =ACM Press
doi = 10.1145/236337.236343
id = ISBN 0-89791-788-X] . Subsequently, it has been chosen as the default algorithm for method resolution in Python 2.3,Perl 6 , and Parrot. It is also available as an alternative, non-default MRO in the core of Perl 5 starting with version 5.10.0. An extension implementation for earlier versions of Perl 5 named [http://search.cpan.org/dist/Class-C3 Class::C3] exists onCPAN .References
External links
* [http://www.python.org/download/releases/2.3/mro/ Python 2.3's use of C3 MRO]
* [http://use.perl.org/~autrijus/journal/25768 Perl6 will use C3 MRO]
* [http://aspn.activestate.com/ASPN/Mail/Message/perl6-internals/2746631 Parrot uses C3 MRO]
* [http://search.cpan.org/dist/perl/lib/mro.pm C3 MRO available in Perl 5.10]
* [http://search.cpan.org/dist/Class-C3/ Perl 5 extension for C3 MRO on CPAN]
Wikimedia Foundation. 2010.