Next:
はじめに
Up:
Inside KLIC Version 1.0
Previous:
Inside KLIC Version 1.0
Contents
Contents
はじめに
逐次処理系
データ構造
KL1レベルのデータ構造
ワード
CONSとファンクタ
参照セルと純粋未定義変数セル
中断ゴールを現わす構造
タグ関連のマクロ
ジェネリック・オブジェクト
ジェネリック・オブジェクトの種類
ジェネリック・オブジェクトのデータ構造
実装レベルのデータ
大域データ構造体
ヒープ
モジュール
述語
ゴールレコード
KLICの基本的な動作
動作モデル
トップレベルループ
コンパイルドコード
モジュールの原則
述語呼び出しの実現
述語の原則
データのキャッシュ
例外的な処理
ヒープの使い方
エンコーディング規則
例
コード説明
割り込み/中断/失敗
例外処理
割り込み時の処理
KL1レベルでの割り込み処理
割り込み処理: klic_interrupt
中断、失敗処理: interrupt_goal
関数型仕様
動作
Timer
基本的な方式
実装詳細
単一化器
Passsive unification
Active unification
単一化器: do_unify()
ゴールの再開: resume_goals()
Generator の起動: generator_unify()
単一化ゴールのエンキュー: enqueue_unify_goal()
複雑なゴールのエンキュー: enqueue_unify_terms()
ジェネリック・オブジェクト
ジェネリック・オブジェクトの概略
ジェネリック・オブジェクトの種類
Data object
Consumer object
Generator object
GC
基本的なGCのアルゴリズム
GCの対象領域
Copyされたかどうかの判定
GCのきっかけ
GCのためのデータ構造
GCのアルゴリズム
klic_gc
collect_garbage()
copy_one_queue()
copy_terms()
トレーサ
機能概要
提供機能の概要
リンク時のトレース指定
名前情報の管理
トレースの制御と情報入手
擬似ゴールの構造
CALL ポートのトレースのきっかけ
REDUCE/SUSPEND ポートのトレースのきっかけ
リダクション結果の子ゴールの認識
リデュースにともなう再開ゴールの把握
リデュース結果のゴールのトレース
トレースされた中断ゴールの再開の把握
trace_after()の処理
並列処理系
概要
両版の違い
ノードの表現
逐次版とのインターフェース
両者の切りわけ
メッセージ通信版
処理系の構成
基本方式
荘園
外部参照ポインタ
分散ユニフィケーション
参照値の読出し (dereference)
ループへの対処
詳細な実装
分散プロセス立ち上げ方式
メッセージの送信/受信
分散処理用ジェネリック・オブジェクトの詳細
リプライ・コンシューマ・オブジェクトの詳細
共有メモリ並列実装
概要
処理系の構成
共有変数オブジェクト
局所領域と共有領域
ゴールの投げだし
共有変数の具体化
共有ヒープへのコピーの遅延
共有ヒープのガーベジコレクション
局所GC
共有ヒープGC
Index
はじめに
Sekita Daigo
1998-05-18