抽象構文木を用い,スケーラブルなクローン検出を行うDECKARDの論文.
まずは対象の部分木中のASTノードの出現回数をベクトル化し,ユークリッド空間に落とし込む. ベクトルを足し合わせることで,複数の部分木を一つのクローン検出対象コード片として扱える. 次に,このベクトルに対して局所性鋭敏型ハッシュを計算する. 局所性鋭敏型ハッシュとは,ベクトルがある程度近ければ高確率で同じハッシュ値を返す計算方法である. 最後にハッシュ値を比較することでクローンを検出する.
所感として,スケーラビリティを謳っているのにスケーラブルな手法を使っているCCFinderとの比較を行っていないのは卑怯だと感じた. また,抽象構文木を使うというよりかは,構文解析した結果を使っているように感じた.