«前の日記(2006-05-17) 最新 次の日記(2006-05-27)» 編集

netail.net

自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.

最近のお知らせ (古いものはこちら)


2006-05-20 [長年日記]

_ Nitobe Memorial Garden

滞在してるところから本当に近距離(歩いて5分くらい?)にあったので,行ってきた.良い庭園だったので,秋の紅葉シーズンになったらまた行くかも.

_ [ツール] bddbddb 使ってみました

解析ツールは,joeq_core として別途配布されているので,bddbddb-full.jar だけ取ってきても Java 解析はできません.基本的に cvs を使って bddbddb と関連パッケージを一式 Eclipse に取り込んでから使うという形式が正しいみたいです.

Java バイトコードを解析ツールに食わせるとコールグラフと bdd ファイルが生成されます.コールグラフ自体,多態性を解決できる範囲で解決されているので,これ単体でもけっこう便利そうな印象.

出力された bdd ファイルに対して points-to set analyzis の datalog ファイルを与えるとそれなりに動作します.ただし,bddbddb が依存するパッケージ javabdd をちゃんと用意することと,例として配布されてる datalog ファイルそのままだと微妙なエラーが出たりするというところは,ちょっと厄介です.

また,bdd 1個はリレーション(リレーショナル代数でいうところのリレーション)を表現しており,bdd エンコードされたものを tuple のリストに変換して,tuple に入ってる整数値が意味する中身を map ファイルから探してくることで,中身のデコードができます.ただし,context-sensitive な解析結果などは,コンテキストの数が多すぎてデコードできませんが.何に使うかちゃんと決めて,できる限り datalog で処理をして,最後にデコードしないと役に立たないようです.

この辺の使い方については,あとで文書としてちゃんとまとめます.

ちなみに,メモリは512MBくらいは割り当てないと,厳しいようです.でも,小規模なプログラム(ライブラリ含めてメソッド数1万程度)ならノートPCでも数分で処理が終わるので,そんなに負荷は高くないといえるかもしれません.処理用の別PCがほしくなるくらいには負荷がかかりますが.

お名前:
E-mail:
右の画像に書かれている文字列を入力してください:
コメント: