代碼分析的原理?
PMD執行Java代碼分析的原理PMD是一種代碼靜態分析工具,當使用PMD規則分析Java源碼時,PMD首先利用JavaCC和EBNF文法產生了一個語法分析器,用來分析普通文本形式的Java代碼,產生符合特定語法結構的語法,同時又在JavaCC的基礎上添加了語義的概念即JJTree,通過JJTree的一次轉換,這樣就將Java代碼轉換成了一個AST,AST是Java符號流之上的語義層,PMD把AST處理成一個符號表。然后編寫PMD規則,一個PMD規則可以看成是一個Visitor,通過遍歷AST找出多個對象之間的一種特定模式,即代碼所存在的問題。自定義PMD實現規則有如下2種方式:(1). 自定義Java類并繼承(2). 自定義XPATH表達式,編寫xml規則,在規則的properties-property節點中定義XPATH表達式,該表達式是依賴于抽象語法樹AST的。
上一篇世界上最牛掰的代碼