Next:
1 KL1 入門
Up:
KLIC 講習会テキスト KL1 言語編
Previous:
1.1 はじめに
もくじ
1.1 はじめに
もくじ
1 KL1 入門
はじめに
1.2 構文と実行機構の基本
1.2.1 プログラムの形式と基本実行機構
簡単なプログラム
プログラムの実行
ユニフィケーション
ガード・ユニフィケーション
ボディ・ユニフィケーション
節の形式と基本実行機構
並列実行, 通信, 同期の機構
実行機構についての補足
複数の節が使えたら?
どの節も使えなかったら?
ボディ・ユニフィケーションで, 既に値の決まっている変数の値 をまた決めようとしたら?
1.2.2 他のプログラム言語と比べて
手続き型言語と KL1
関数型言語と KL1
他の論理型言語と KL1
Prolog と KL1
他の並列論理型言語と KL1
オブジェクト指向言語と KL1
1.3 データとシンタクス
1.3.1 論理変数
変数はメモリ番地ではない
変数に型はない
1.3.2 アトミックなデータ
記号アトム
数値アトム
1.3.3 構造を持ったデータ
未完成データ構造
構造データのユニフィケーション
ガード・ユニフィケーション
ボディ・ユニフィケーション
1.3.4 略記法
ガード・ユニフィケーションのヘッドでの表記
ゴール true の省略
1.4 プロセスとストリーム通信
1.4.1 プロセス
KL1 のプロセスとは
リスト要素の和
自然数のリスト
1.4.2 ストリーム通信
プロセスの複合
ストリーム通信
プロセスの状態
複雑なメッセージ
1.5 プロセス・ネットワーク
1.5.1 フィルタ
1.5.2 ストリームの連結
1.5.3 マージャ
1.5.4 ディスパッチャ
1.5.5 サーバ
1.6 プログラム動作の指定
1.6.1 並列実行指定の方針
負荷分散はプログラムで指定する
ふたつの並列性を分離する
1.6.2 ゴール分散プラグマ
1.6.3 ゴール優先度指定プラグマ
1.6.4 節優先度指定プラグマ
1.7 一階述語論理と KL1
1.7.1 プログラムは公理の集まり
1.7.2 実行は証明過程, 計算結果は反例
1.7.3 証明系としての Prolog と KL1
2 プロセス・ネットワーク
2.1 基本的なプロセスとプロセス・ネットワークの復習
2.1.1 木構造
2.1.2 要求駆動とサーバプロセス
2.2 解の回収と計算終了判定
2.3 プロセス・ネットワーク構築上の注意点
2.3.1 入出力を分ける
2.3.2 各ノードの役割は単純に
2.3.3 部分木は直接通信させない
2.3.4 ループは避ける
2.3.5 カオスなネットワークはやめよう
2.3.6 マージャ
2.4 やや高度なネットワークの組み方
2.5 演習問題
【演習問題】 フィボナッチ数の平方と立方の総和
【演習問題】
3 差分リストの使い方
3.1 クイックソートの原理
3.2 差分リスト
3.3 ショートサーキット
3.4 出力ストリーム
【演習問題】 データ記録方法の練習
【演習問題】 ソートの練習
【演習問題】 2段ソートの練習
4 優先度と負荷分散
4.1 優先度制御の利用目的
4.2 基本プログラミング
4.2.1 プログラムの実行とスケジューリング
簡単なプログラム実行
過剰生産とその抑制
要求駆動型プログラミングによる解決
4.3 KL1 のゴール優先度指定方法
4.3.1 再び生産者と消費者の問題
4.3.2 ゴール優先度指定の文法
4.3.3 優先度指定使用上の注意
4.4 もうひとつの優先度
注意点
4.5 応用: 幅優先評価の実現
4.5.1 すべてのノードを評価する方法
4.5.2 不要なノード評価を始めない方法
4.5.3 不要なノード評価を打ち切る方法
4.5.4 優先度を用いて幅優先に評価を行なう方法
4.6 応用: 簡単な探索問題
4.7 負荷分散制御の利用目的
4.8 ゴール分散の指定方法
サイクリック割り付け
ランダム割り付け
暇なノードへの動的割り付け
4.9 応用: 簡単な探索問題
簡単な探索問題
【演習問題】 二進木の探索
5 総合演習問題
【演習問題】 ストリームの要素を除去するプログラム
【演習問題】 ストリームを圧縮するプログラム
【演習問題】 1,000 以下の素数列を生成するプログラム
【演習問題】 20,000 以下の素数列を生成するプログラム
【演習問題】 1,000 番目の素数を求めるプログラム
A 演習問題の解答例
【演習問題解答】 フィボナッチ数の平方と立方の総和
【演習問題解答】
【演習問題解答】 データ記録方法の練習
【演習問題解答】 ソートの練習
【演習問題解答】 2段ソートの練習
【演習問題解答】 二進木の探索
【演習問題解答】 ストリームの要素を除去するプログラム
【演習問題解答】 ストリームを圧縮するプログラム
【演習問題解答】 1,000 以下の素数列を生成するプログラム
【演習問題解答】 20,000 以下の素数列を生成するプログラム
要求駆動のプログラム
優先度を利用したプログラム
【演習問題解答】 1,000 番目の素数を求めるプログラム
参考文献
この文書について...
Next:
1 KL1 入門
Up:
KLIC 講習会テキスト KL1 言語編
Previous:
1.1 はじめに
KLIC