値の範囲分析
コンピューティング、特にコンパイラ構築において、値範囲解析はデータフロー解析の一種であり、プログラム実行の各時点で数値変数が取り得る値の範囲(間隔)を追跡する。[1]得られた情報は、冗長性の除去、デッドコードの除去、命令の選択など の最適化に使用できるだけでなく、バッファオーバーランの検出など、プログラムの安全性を向上させるためにも使用できる。[2]値範囲解析の手法では、通常、シンボリック解析が広範に用いられる。[3]
値範囲解析はIntel C++コンパイラで実装されることが多く、GCCでも実装されています。[4]
参考文献
- ^ ハリソン, ウィリアム H. (1977). 「変数の値の範囲に関するコンパイラ解析」. IEEE Transactions on Software Engineering . 3 (3): 243– 250. doi :10.1109/TSE.1977.231133. S2CID 17018610.
- ^ Wagner, D.; Foster, JS; Brewer, EA; Aiken, A. (2000).バッファオーバーラン脆弱性の自動検出に向けた第一歩. NDSS.
- ^ バーチ、ジョニー、ヴァン・エンゲレン、ロバート、ガリバン、カイル。「条件付き更新変数とポインターの値の範囲分析」(PDF)。
- ^ MacLeod, Andrew (2021年4月28日). 「Project RangerによるGCCでの値の範囲伝播」