| 平成7年度 委託研究ソフトウェアの 成果ソフトウェア |
klint は、プログラムの各述語のプロトコルを推論して、その結果をモー ドグラフの形で出力する。プログラマがモード宣言を与える必要はない。 モードづけできない場合は、プログラム中のどの記号が、最終的に誤り を引き起こしたかを報告して、その時点のモードグラフを出力する。次 の版では、モードづけできない原因を、文献[4]の方法にしたがって解 析して報告するように改良する予定である。
klint は、モード制約生成系(klint1)とモード制約充足系(klint2)を、 Unixパイプで接続した構成になっている。モード制約生成系は、プログ ラムが構文的に課するモード制約を出力するものであり、モード制約充 足系は、モード制約生成系から来る制約集合を解いて、プログラムの主 モード(principal mode)を、モードグラフの形で求めるものである。
なお、モード解析は、Prolog 処理系に見られる singleton 変数の警告 機能を含んでいる。
klint1-main.kl1, klint2-main.kl1,
constraints.kl1, decode.kl1,
findpath.kl1, graph.kl1,
normalize.kl1, numberbuiltin.kl1,
outmessage.kl1, read_program.kl1,
reduce.kl1, stdinout.kl1, unify.kl1
以上が、klint1 および klint2 のソースプログラム
klint Bourne shell で定義したトップレベル
advertise.txt 本ファイル
Makefile make ファイル
README 概要、klint の入出力、使用例、インストール方法
などの情報を含む
[1] Ueda, K. and Morita, M., Moded Flat GHC and Its Message-Oriented
Implementation Technique. New Generation Computing, Vol.13,
No.1 (1994), pp.3-43.
[2] Ueda, K., I/O Mode Analysis in Concurrent Logic Programming. In
Theory and Practice of Parallel Programming, LNCS 907, Springer,
1995, pp.356-368.
[3] Ueda, K., Experiences with Strong Moding in Concurrent
Logic/Constraint Programming. In Proc. Int. Workshop on
Parallel Symbolic Languages and Systems (PSLS'95), T. Ito,
R.H. Halstead, Jr., and C. Queinnec (eds.), LNCS 1068, Springer,
1996, pp.134-153.
[4] Cho, K. and Ueda, K., Diagnosing Non-Well-Moded Concurrent Logic
Programs. To be presented at 1996 Joint International
Conference and Symposium on Logic Programming (JICSLP'96), Bonn,
Germany, September 1996.