PMD (ソフトウェア)

PMD (英語のProgramming Mistake Detectorの頭文字)は、Javaソースコードをするための静的なルールセットで、以下のような潜在的問題を識別する:
PMDには正式名称が無く、いくつかの非公式名があり、おそらく最も適切な名称は「Programming Mistake Detector」とされる。
通常PMDのエラーは真のエラーにはならないが、むしろ非効率なコードで例えば未だに修正されないとしてもアプリケーションは適切な動作が出来る事になる。
ルールセット.
PMDにはカスタムルールを書くことが出来る内蔵のルールやサポートが含まれる。カスタムルールは以下2通りの方法で書くことになる:
Copy/Paste Detector (CPD).
Copy/Paste Detector (CPD)とはPMDに対応したアドオンでラビン-カープ文字列検索アルゴリズムを使って重複コードを検索する。Java、JSP、C言語、C++、Fortran、PHP、C#のコードを使って動作している。
プラグイン.
PMDはJDeveloper、Eclipse、jEdit、JBuilder、Omnicore's CodeGuide、NetBeans/Sun Studio、IntelliJ IDEA、TextPad、Maven、Ant、Gel、JCreator、Hudson、Jenkins、、Emacsのプラグインにもなっている。