平成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.