C 言語によるオブジェクト記述法 COOL の特徴を挙げます。
1. オブジェクト指向の主要な概念をサポート
クラス(1章)、プロパティ(5章)、メソッド(2章)、 継承(6章)、多態性(7章)、をどのように記述するかを 定義しています。 これにより、C 言語だけでは表現できないオブジェクト指向的な 情報をソースコードに加えることができ、 解読するときの助けになります。
2. モジュール名の使用による検索性と名前衝突の回避
クラス、補助クラス(8章)、操作関数(2章)、クラス属性(3章)の 名前の先頭をモジュール名で統一することにより、それらを定義して いるプログラム・ファイルを即座に見つけることができます。
また、モジュール名はプレフィックスを兼ねるので 名前衝突の可能性が低くなります。もし衝突しても、 法則性があるので簡単なツールでモジュール名を 変更することができます。
3. 初期化操作の明示と、動的バインディングのサポート
初期化操作を記述法に入れることでいわゆる open-close principle が 明示され、カプセル化を進めます。 また、再コンパイル不要インターフェイスや動的バインディング・インターフェイスを 使用することにより再利用性を高めます。(4章)
4. 委譲と多態性による継承的再利用の促進
委譲による継承の記述は、非常に面倒ですが、 作成したクラスは、継承をサポートするクラスと同じように 使うことができます。 多重継承も Java 言語の多重インターフェイスのように 多態性の記述を用いて実現できます。 さらに、パラメタライズド・クラス を用いることにより生成時から多態性を記述でき、 重複継承や動的継承により 再利用のパターン化を進めます。(6,7章)