ソースコードの類似性分析は,コードクローン・盗用の検出やソースコードの分類といった応用のために重要である.既存研究では,ソースコードを木構造で表現したものの類似性や文字列としての類似性を評価するなどプログラムの構造に注目した分析が多く,ソースコードを1 行変更しただけでプログラムの動作が大きく変わる場合であっても構造的な変化は小さいため類似度を過大評価してしまうといったように,処理の類似性を検出することが難しい.本研究では,変数の値の変化を利用した類似度を定義し,その類似度に基づいてソースコードをクラスタリングするプログラムを実装した.さらに予備的な実験としてオンラインジャッジシステム(プログラム問題を自動採点するシステム) に提出されたソースコードに対してクラスタリングを行い,処理の類似性を検出できる可能性がわかった.
鈴木 凌斗,矢谷 浩司. 「変数の値の変化を利用したソースコード分析手法の提案」 ヒューマンインタフェースサイバーコロキウム2020.2020年10月.(paper)