next up previous contents index
Next: 実装レベルのデータ Up: ジェネリック・オブジェクトのデータ構造 Previous: Consumer

   
Generator

Generatorのデータ構造を図2.8に記す。 Generatorは未定義変数より、特別な構造を介して参照されている。


  
Figure 2.8: generator object の実装
\begin{figure}\begin{center}
\epsfile{file=generator-struct.eps,width=.8\textwidth}
\end{center}\end{figure}

Generatorも、consumerや中断ゴールと同様、「二重REFループ」により まず検出される。Consumer, 中断ゴールとの最大の相違は、「1つの変数について 複数のgenerator, consumer、中断ゴールなどがぶらさがることはない」ということで ある。つまり、generatorは他のものと単一化が行われる場合、 一度「具体化を試み」てから、その結果を単一化する (試みた結果、具体化されない、つまり、「未定義変数」のままである、 ということはありえる)。 よって、Generatorがそのままの形で他のものと変数を共有することはない。

Generatorのメソッド表の構造は、include/klic/g_methtab.hにて generator_object_method_tableとして定義されている。



Sekita Daigo
1998-05-18