C3 Linearization とは オブジェクト指向言語では、クラスメンバ (フィールドやメソッド) のアクセスのために、クラスを特定の順序でたどる必要があります。C++, Python など、多重継承を持つような言語においては、その順序には複数の選び方があり、えてして複雑になります。この順序 (または順序決定アルゴリズム) を一般的には method resoluton order (メソッド解決順序; MRO) と呼びます。 C3 Linearization (以下、C3) はこのような MRO の一つで、元 Apple の Barrett らにより国際会議 OOPSLA '96 で発表されました。C3 は今でも Python などいくつかの言語で使用されています。 C3 のアルゴリズム自体はシンプルで、Wikipedia や Python のドキュメントにわかりやすく書かれていま