到達不能コードの検出
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/04/28 05:23 UTC 版)
「到達不能コード」の記事における「到達不能コードの検出」の解説
詳細は「デッドコード削除」を参照 静的コード解析の一種としては、変数の値やその他の実行時の条件がどうであっても決して実行されないコードを、単純なものでは制御構造の分析によって、より高度には抽象解釈などにより検出する。一部の言語(Javaなど)では、ある種の到達不能コードは言語の仕様上許容されない。デッドコードの削除について詳しくはデッドコード削除の記事を参照のこと。 しかし、静的に決定が可能なパターンの到達不能コードの検出は、そういったコードを意図的に書くことは無いといった意味では、最適化よりも、バグ(の可能性)を警告する、といった目的のためのほうが有用かもしれない。 また、実際のところ、静的解析よりも、実行時の動的な最適化(例えばコマンドライン引数に対応して、動的コード生成を行うプログラムなどがある)の際のほうが、if文の条件式などが恒真式になったりして、到達不能コードが現れやすいかもしれない。 コンパイラによる高度な最適化などの結果によっては、例えば共通式削除などで、ソースコード中には複数あらわれる表現であるのに、オブジェクトコード中で相当するのは一箇所だけ、といったような場合も、一種のデッドコードのようなものとして、デバッガなどからは見える場合もある。
※この「到達不能コードの検出」の解説は、「到達不能コード」の解説の一部です。
「到達不能コードの検出」を含む「到達不能コード」の記事については、「到達不能コード」の概要を参照ください。
- 到達不能コードの検出のページへのリンク