本研究の基本的な考え方は、プログラムにおいて中心的な役割を担う変数に着目し、これに影響を与える命令群とこれの影響を受ける命令郡を実行順序関係を保存したまま抽出すれば、これがプログラムの特徴を表すインデックス情報になり得る、という仮説にある。 本年度は上記のインデックス情報をプログラムスライシング技術中のスタティックスライシング技術を利用して生成するという戦略に基づき検討を行なった。すなわち対象とするプログラムから着目する変数に関するスライスを直接抽出することは困難であるため、まず対象とするプログラムの構造をDef/Useグラフの形式により統一的に表し、次にこのDef/Useグラフから着目する変数に関するスタティックスライスを抽出するという2段階のアプローチをとることとした。 ここでDef/Useグラフとは、プログラムの単位処理機能(C言語の関数、Java言語のクラスに対応するもの)間の相互利用関係と単位処理機能内の命令実行順序関係および各命令ごとの変数の定義/利用関係を有向グラフにより表現したものである。 現在Java言語で記述された対象プログラムからDef/Useグラフを生成するアルゴリズムをJava言語を用いて実現した段階にある。今後このDef/Useグラフから目的とするスタティックスライスを抽出するアルゴリズムをJava言語により実現し、本方法の妥当性の評価ならびに問題点の抽出を行なう予定である。
|