正規化圧縮距離を用いたクローンコード検索ツールNCDSearchを開発しました論文.
あるコード片がバグっていることが判明した時,それとクローンとなっているコードを検出したいという目的でクローン検出が行われることがある. しかし,このようなコンテキストにおいてCCFinderXは役に立たない. そこで正規化(Normalized Compression Distance,NCD)を用いてクローンを検索するツールを提案した.
NCDとは,zipなどの圧縮技術によく用いられる概念である. よく分からんので説明は省く. 要するに2つのデータの類似度を測定する手法のことである. 他にも手法としては,スライディングウィンドウなどを行なっている.
このツールについてCCFinderXとNiCadに対して実験している.
これってタイプ3のクローン検出器なのではないかと感じた. 論文タイトル中にBuggy Codeと書いてあるが,バグコードでの優位性は不明. それに特化した手法とは思えない(単に読み取れてない可能性はある). grep風らしい.