toge's diary

コンピュータ関連の趣味をつらつらと。

duplo

http://duplo.giants.ch/

C/C++/Javaに対応した、いわゆるコピー&ペーストコードを検出するプログラム。
単なる行単位のチェックよりは幾分ましな処理をしてくれているみたいで、コメントや{}の位置などは無視して同一であるかどうかを判定してくれる。

同一な行が何行連続するまでは無視するかとか、プリプロセス用のコードを抜かしたり、同一ファイル名だったら検出しないように指定出来たりもするので、結構融通が効きます。

ちなみに私の今弄っているコードだと・・・、

Results:
  Lines of code: 15698
  Duplicate lines of code: 3086
  Total 394 duplicate block(s) found.

  Time: 3.6 seconds

しくしく・・・20%はコピー&ペーストだとばれちゃいました。