変数と定数の混在する算術式の最適化を対象とした Cコンパイラのランダムテスト
著者 福井 悠太
URL http://hdl.handle.net/10236/12411
2013 年度 修士論文要旨
変数と定数の混在する算術式の最適化を対象とした C コンパイラのランダムテスト
関西学院大学大学院理工学研究科 情報科学専攻 石浦研究室 M2336 福井 悠太
本論文では,変数と定数の混在する算術式の最適化を対象としたCコンパイラのランダムテスト手法を提 案する. Cコンパイラのテストには主に,テストスイートによるもの,ランダムテストによるものが挙げられ る. 従来のCコンパイラのランダムテストでは,プログラム中の各変数の値の組合せを1組しかテストして おらず,変数の値が特定の場合でのみエラーを起こす不具合は見逃してしまう可能性があった. これに対し て, 変数に具体的な値を入れずに論理変数として扱い,全ての値の組合せをテストするランダムテストも提 案されたが, 定数に関連する最適化がテストできないという問題があった. そこで本研究では,変数と定数 を混在させた上で変数の全ての値の組合せについてテストを行う手法を提案する. まず,変数と定数を混在 させるために, 変数のリストから変数を取り出し, その変数の型の範囲内で表現できるランダムな値を決定 し, 算術式を生成する手法を実装した. また,変数と定数を混在させることにより従来の未定義動作の回避 手法が適用できない可能性があったため,新たな未定義動作の回避手法を検討した. さらに, 定数に関連す る最適化で不具合が検出率を向上させるために, 1つのテストで複数式を扱えるようにし,算術式中に生成 済みの算術式を組み込むテストも行い,式の長さを制御も出来るようにした. これらの検討手法を取り入れ, 変数と定数を混在させた上で,変数の全ての値の組合せを対象としたランダムテストシステムを実装した.