「静的解析ツール」の版間の差分
imported>Mono Book 編集の要約なし |
Administrator (トーク | 投稿記録) 編集の要約なし |
||
| (2人の利用者による、間の4版が非表示) | |||
| 1行目: | 1行目: | ||
'''静的解析ツール'''([[英語]]:static | '''静的解析ツール'''([[英語]]:static analysis)とは、[[ソースコード]]を食わせると、[[バグ]]の原因になりそうな箇所を指摘してくれる[[ソフトウェア]]の総称である。 | ||
==概要== | ==概要== | ||
静的解析を用いると、わざわざ[[デバッガー]]を雇い、人力で[[プログラム]]を実行して[[デバッグ]]をせずとも、人為的な[[コーディング]]時の[[バグ]]により[[エラー]] | 静的解析を用いると、わざわざ[[デバッガー]]を雇い、人力で[[プログラム]]を実行して[[デバッグ]]をせずとも、人為的な[[コーディング]]時の[[バグ]]により[[エラー]]になるであろう箇所を見つけ出してくれる。 | ||
[[ | たとえば「ある[[関数]]の[[引数]]は0から100の値をとる[[仕様]]」だとすると、それを呼び出す側でそれ以外になる例外パターンは無いか、などを[[芋づる式]]に調べてくれ、例外パターンがあると[[バグ]]として報告してくれる。 | ||
なんとも夢のような技術であるが「[[契約による設計]]」に対応している[[プログラミング言語]]で[[ソースコード]]がきちんと記述されていれば凄い高い精度を叩き出すが、その他大勢の一般的な[[プログラミング言語]]では期待はずれな残念な結果しか得られないことが多い。 | |||
2024年頃から[[人工知能]]を使うことでクソみたいなソースコードでも解析できるものが登場してきた。 | |||
==主な製品== | |||
[[契約による設計]]に対応している[[プログラミング言語]]の多くは[[コンパイラ]]の機能のひとつとして実装していることが多い。 | |||
コンパイラに機能として付いているものとしては[[D言語]]が有名である。 | |||
[[C Sharp|C#]]などの[[.NET]]系では[[共通中間言語]]([[中間コード]])を食わせるツールで対応している。 | |||
[[Visual Studio]]のお高いエディションがこれに対応しており、静的解析はビルドの過程で勝手に実行されるので[[コンパイラ]]の機能として提供されるものとの違いは特に感じないと思われる。静的解析を有効にすると、[[ビルド]]が激遅になるうえに、[[C Sharp|C#]]でちょろっと書いた[[hello world]]すら[[エラー]]でまくりで焦ること請け合いである。 | |||
==例== | ==例== | ||
| 32行目: | 40行目: | ||
*[[コンパイラ]] | *[[コンパイラ]] | ||
[[category: プログラミング]] | |||