| |||||||||||
| オブジェクト指向プログラミングは、述語の内部状態を隠しておいて、 その状態を操作するのに適しています。 MINERVAでは、クラスとそのメソッドを定義することができます。 あるクラスのあるオブジェクトには、 黒板データ、つまり、bb_ で始まる 述語を使ってアクセスすることができる内部状態があります。 例: :- class(counter). 新しいオブジェクトを作るために、MINERVAコンパイラは、これらの述語を処理し、 create_CLASS/1/2の述語を生成します。 結果として生成された述語は、 Object::Method(Arg1,..,ArgN)となります。 ここで、 Objectは、create_object/2で生成され、Methodは、アトム あるいは複合項でなければなりません。 上の例は、古典的なPrologでは以下のようになります。 create_counter(10,Counter), Counter :: next(Index) 上の例は、関数表記では、以下のようになります。 Counter <- create_counter(10), Index <- Counter::next, ... | |||||||||||
| |||||||||||
| 戻る> |
|