静的解析(Static Analysys)の参考書籍について


C(C++、C#)ソースコード静的解析ツールの検証項目について、先輩諸氏の知見を拝借します。

静的解析は、次の2つの観点があると思います。

  1. 実行文としての構文解析
  2. コーディングフォーマットとしての構文解析(コメント、インデントなども含めた)

これらの「構文解析」の具体的な検証項目について、参考書籍などありましたら教えてください。




既にコメントにもあるけど、静的解析ってのは構文解析することではないので何が訊きたいのか良くわからないです。  
構文解析ならコンパイルのたびに毎回行われるわけで。

私が思うところの静的解析ってのはたとえば

  * 変数の値を、設定しないまま使う経路があるかどうかをチェックする
  * 絶対に通過しない行があるかどうかチェックする
  * 意味の無い比較をしているかチェックする (unsigned < 0 は絶対に成立しない)
  * 移植性の低い (他の処理系に移植すると挙動が変わりうる) コードをチェックする
  * タイプミスではないか？を検出する (Ｃで `if (x=0)` はたぶんタイプミス)

などなどの「バグっぽいコードを実行する前に検出する」ことです。

で、この静的解析の一例として C なら MISRA <http://ja.wikipedia.org/wiki/MISRA-C> とかが該当しますし  
(個人的には MISRA-C は使う気がしませんけど)  
他にも lint <http://ja.wikipedia.org/wiki/Lint> とかがあります。  
商品として売られているものもいっぱいあります (名前やリンクを出してよいのかわからないので保留)

C# 用の解析ツールってあったっけかな？  
言語仕様/コンパイラ/IDE が十分賢いのでほぼいらない気がする。  
追記：検索してみた。いっぱいあるようだ。名前やリンクを出してよいかわからないので提示しないでおく。

# タグ [アルゴリズム] はこの目的には不適切だと思う  
# そもそも [答えのある質問] でも無いと思う。

