2014 Fiscal Year Research-status Report
正確な期待値計算および生成コードの記号実行に基づくコンパイラのランダムテスト
Project/Area Number |
25330073
|
Research Institution | Kwansei Gakuin University |
Principal Investigator |
石浦 菜岐佐 関西学院大学, 理工学部, 教授 (60193265)
|
Project Period (FY) |
2013-04-01 – 2017-03-31
|
Keywords | コンパイラ / ランダムテスト / テストスイート / 期待値計算 / 不具合検出 / 最適化機会検出 / Orange3 / CF3 |
Outline of Annual Research Achievements |
本年度は,期待値計算に基づくCコンパイラのランダムテスト,およびCコンパイラのテストスイートの開発に関する研究を行った. 1.期待値計算に基づくランダムテストに関しては次の成果を挙げた.(1) これまでに開発してきたランダムテストシステムOrange3をGitHubに公開し,内外のコンパイラ開発者が無償で利用できるようにした.(2) 生成できるテストの範囲を拡張し,if文やfor文のコンパイルの処理をテスト可能とした.これにより,LLVMの最新版で不具合を検出することができた.(3) Cコンパイラのコンパイル結果が正しいかどうかだけでなく,意図通りの最適化が行われているかどうかをテストする手法を開発した.これにより,GCCおよびLLVMの最新版で最適化機会の逸失を検出することができた.(4) 新しいプログラム生成手法として,未定義動作を含まない状態を維持しながら式の規模を大きくしていく手法を開発した.なお,(2)(3)により検出した不具合および最適化機会逸失は開発者に報告している. 2.Cコンパイラのテストスイートに関しては,Cコンパイラの算術最適化のテストを効率的に行うためのテストスイートCF3を開発した.CF3は演算数3の可能式のパターン10,985通りに対して100パターンの変数の型と値の組み合わせをテストするものであり,中程度の完成度のコンパイラに対してはOrange3よりも効率的に不具合の検出することができる.本テストスイートは研究室のWWWで一般に公開している.
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
コンパイラのランダムテストに関しては,生成できるテストの範囲を計画度通りに拡張しており,さらにこれを進める目処もつけることができている.しかし,記号実行に基づくテスト手法は,結果が得られないことが判明してきた.一方で,開発したシステムをGitHubに公開するという著しい成果を挙げるとともに,最適化の機会逸失を検出する方法など,当初の想定以上の成果を挙げることができている. コンパイラのテストスイートに関しては,testgen2の拡張はできていないが,算術最適化を対象にtestgen2よりも強力なテストスイートCF3を開発し,また,これを公開することができた.
|
Strategy for Future Research Activity |
(今後の推進方策) ランダムテストおよびテストスイートの不具合検出能力を高めるために,現在種々のパラメータが不具合検出に及ぼす影響を分析している.また,これまでの方法では限界があった拡張を実現するために,新しい要素技術を開発しているところである.次年度はこれらの結果を踏まえて,新たなテストシステムの開発,およびテストスイートの改良を行う計画である.
|
Causes of Carryover |
現存するテストスイートtestgen2の分析と拡張を行うために謝金が発生する予定であったが,自動生成可能なテストスイートCF3の開発が進展したため,次年度使用額が生じた.
|
Expenditure Plan for Carryover Budget |
テストスイートtestgen2およびCF3の分析作業を進めるとともに,ランダムテストにより生成されるプログラムの分析やコード整理の進捗に使用する計画である.
|