平成8年度 委託研究ソフトウェアの 成果ソフトウェア |
Version 1.0
April 1997
上田 和紀、長 健太
早稲田大学理工学部情報学科
ueda@ueda.info.waseda.ac.jp
Copyright (C) 1997 上田 和紀、長 健太
kimaは、モードづけできない(ill-modedな)プログラムの、モード誤り(mode error)を、文献[4]の方法で解析するツールである。kimaを用いてモード誤り を特定することで、KL1プログラムの通信プロトコルの誤りを、静的に検出す ることができる。
kimaは、モード誤りを、モード制約の矛盾する極小部分集合として特定する。 モード誤りに対応する極小部分集合、およびそれに含まれる各制約がプログラ ム中のどのシンボルからどの規則によって得られたものであるかを表示するこ とで、プログラマのバグ発見を速くかつ容易にする。
可能な場合は、さらに、極小部分集合中のもっとも“疑わしい”制約と、モー ド矛盾を解消するようなプログラムの修正案を提示する。
kimaは、モード宣言などの、解析対象のKL1プログラム以外の入力は必要とし ない。
kimaは2つのプログラムで構成されている。一つはモード制約生成系 (klint101)でもう一つはモード制約解析系(kima2)である。モード制約生成系 は、KL1プログラムが構文的に課するモード制約を生成する。モード制約解析 系は、モード制約が全体として矛盾する場合、その矛盾する極小部分集合を見 つけ、さらに可能な場合、その中から誤りの真の原因と思われるモード制約と それを課した記号に対する修正案を提示する。
kimaが依拠している並行論理/制約プログラミングの強モード体系については 文献[1]を参照してほしい。モード解析の概要は文献[2]に述べられている。
インストール:
klint101およびkima2は完全にKL1で書かれ、KLICでコンパイルできる。これら を作成するにはMakefileを使用すればよい。kimaはシェルスクリプトとして定 義してある。
ファイル:
[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. In Proc. 1996 Joint International Conference and Symposium on Logic Programming (JICSLP'96), M. Maher (ed.), The MIT Press, 1996, pp.215-229. |
www-admin@icot.or.jp