next up previous contents index
Next: ゴールの再開: resume_goals() Up: 単一化器 Previous: Active unification

単一化器: do_unify()

単一化器do_unify()のアルゴリズムについて解説する。

do_unify()のインターフェースは以下のようになっている。

q *do_unify(allocp, x, y)
     q * allocp;
     q x, y;

x, y は単一化対象である項であり、allocpはヒープ割付点のアドレスである。 単一化後、更新されたヒープ割付点のアドレスが返される。

以下でアルゴリズムの説明を行う。

1.
片方の項 x を手繰りつつ型検査を行う。

以上で述べたように、active unifierの内部では さらに副次的な処理が内部で行われる。つまり、ゴールの再開、 generatorの起動、さらに複雑な項同士の単一化である。それらの説明を以下で行う。



 

Sekita Daigo
1998-05-18