素人プログラマーRYOの勉強日誌。


by R-STUDY

PDG (プログラム依存グラフ)

プログラムのコードを判定する場合、抽象構文木を利用して判定しようとすると、連続していないコードクローンを判定できない場合がある。
しかし、プログラム依存グラフを利用する方法では、プログラムをスライスし、変数の依存関係を調べることによってコードクローンの発見を行える為、連続していないコードクローンを発見することができる。

その依存関係は以下の条件による。

データ依存関係(DD)の定義
 ソースプログラム中の2文s,tに関して、以下の条件を満たすとき、
 変数vに関して文sから文tの間にデータ依存関係が存在するという。
   1.sはvを定義する。
   2.tはvを参照する。
   3.sからtへの1つ以上の実行経路の中に 、vの再定義が起こらない経路が少なくとも1つ存在する。
 制御依存関係(CD)の定義
 ソースプログラム中の2文s,tに関して、 以下の条件を満たすとき、
 文sから文tの間に制御依存関係が存在するという。
   1.sは条件文である。
   2.tの実行はsの判定結果に依存する。


プログラム評価のための問題の自動生成 参照
[PR]
by R-STUDY | 2005-10-18 15:28 | 勉強メモ