... CONSは連続した2ワードの領域であり、CDRが下位ワードCARが上位ワードにある[*]
これは、一般的にCARよりCDRに 純粋未定義変数([*]ページ、第2.1.3章参照)が割り付けられる可能性が高いこと、 KLICでは純粋未定義変数は自己参照の形式で表現される ため、CDRを未定義参照にする処理に対してoffsetが加わらない方が高速な 実現が期待できることに依る。
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... 定義されている。[*]
引数領域で[6]とあるのは、 処理系デバッグの際に、GDBなどのCレベルのデバッガ、中身を見るときに このgoalrec構造体を印字することにより6引数程度は印字される、ということ のためである。よって、プログラム実行上は意味がない。
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... 中断も失敗もしない)main/0では意味がない。[*]
KLICではこのような無駄なコードを生成する場合がある。 しかしながら、さらに、Cコンパイラでの最適化が行われ、 通常は除去されるため、最適化済コードの大きさには影響しないことが期待され、 実際、GCCでは大きさには関係がない。
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
..._unify())。[*]
このような版の単一化器が存在する理由は、 特にジェネリックオブジェクトのメソッド起動については、このメソッドを起動した 結果、再帰的に連続してメソッドが起動され、巨大なヒープを消費するなどにより 処理が複雑になることがあり、そのような状況に対処するためである。 例えば、mergerのコードを参照のこと。
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... KLICを拡張することができる[*]
もちろん、あるデータがジェネリック・オブジェクトかどうかの 判定は出来る。また、そのジェネリック・オブジェクトが、後述する3種類 の内のどの種類のジェネリック・オブジェクトかの判定も出来る。
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... それぞれの状態に対応する値[*]
中断の場合は中断原因の変数への参照
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... それぞれの状態に対応する値[*]
中断の場合は中断原因
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... 参照先が変数[*]
コンシューマ(群) や中断ゴールがフックしている 変数も含む.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... 直接呼びだすことにより行われている。[*]
よって、KLICでは、関数のアドレスがずれるような状況、例えば、 ノード間でloadmoduleのリンクの順などが異るため関数アドレスがずれている場合、 また、ノード間で命令コードアーキテクチャが異る場合などは、 このままでは対応できない)。
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...暗黙前方参照方式の、さらに詳細な処理分化[*]
詳細は現在不明。
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Sekita Daigo
1998-05-18