| Item type |
SIG Technical Reports(1) |
| 公開日 |
2018-01-11 |
| タイトル |
|
|
タイトル |
等価変換に基づくCコンパイラテストシステムにおける制御文生成の強化 |
| タイトル |
|
|
言語 |
en |
|
タイトル |
Reinforcing Generation of Control Flow Statements in Random Test System of C Compilers Based on Equivalence Transformation |
| 言語 |
|
|
言語 |
jpn |
| キーワード |
|
|
主題Scheme |
Other |
|
主題 |
設計・検証技術 |
| 資源タイプ |
|
|
資源タイプ識別子 |
http://purl.org/coar/resource_type/c_18gh |
|
資源タイプ |
technical report |
| 著者所属 |
|
|
|
関西学院大学理工学部 |
| 著者所属 |
|
|
|
関西学院大学理工学部 |
| 著者名 |
岩辻, 光功
石浦, 菜岐佐
|
| 著者名(英) |
Mitsuyoshi, Iwatsuji
Nagisa, Ishiura
|
| 論文抄録 |
|
|
内容記述タイプ |
Other |
|
内容記述 |
本稿では,テストプログラムの等価変換に基づく C コンパイラのランダムテストシステムにおいて,制御文の生成機能を強化する手法を提案する.コンパイラのランダムテストの方式は,差分法と期待値計算に基づく手法に大別される.前者は,文法に従って幅広い構文のプログラムを生成できる一方で,未定義動作の回避が課題になる.これに対し後者では,未定義動作を回避するようにプログラムを生成できるが,プログラム生成の際に構文木に加えて意味に関するデータ構造を構築する必要があるため,差分法に比べてプログラムが生成可能な文法の範囲が限定される.本稿では,後者のプログラム生成法において生成可能な制御文の種類を増やす手法を提案する.等価変換によるプログラム生成手法に基づき,従来から生成可能であった if 文,for 文に加えて,while 文,switch 文,関数呼び出しを含むプログラムを生成可能にする.このうち,while 文,switch 文は,差分法では生成が難しかったものである.本手法に基づくテストシステムを Orange 4 に追加実装して実験を行ったところ,GCC-4.4,GCC-4.8 において従来の手法では検出できない不正コード生成を検出することができた. |
| 論文抄録(英) |
|
|
内容記述タイプ |
Other |
|
内容記述 |
This article proposes a method of reinforcing generation of control statements in random testing of compilers based on equivalence transformation on test programs. Existing methods for compiler random testing are divided into two classes, differential testing and oracle-based testing. The former approach can generate programs with wider syntax constructs but has difficulty in avoiding undefined behavior. The latter, on the other hand, can generate programs without undefined behavior but the programs are with less syntax variety, because it must construct data structures to hold semantic information while generating abstract syntax trees. This article attempts to strengthen the latter method so that it can generate a wider variety of control statements. A test generation method based on equivalence transformation on test programs is extended to generate while statements, switch statements, and function calls, in addition to if and for statements. An enhanced version of the test system Orange4 based on the proposed method has generated error programs to detect bugs in GCC-4.4 and GCC-4.8, which could not be generated by the existing methods. |
| 書誌レコードID |
|
|
収録物識別子タイプ |
NCID |
|
収録物識別子 |
AA11451459 |
| 書誌情報 |
研究報告システムとLSIの設計技術(SLDM)
巻 2018-SLDM-182,
号 28,
p. 1-6,
発行日 2018-01-11
|
| ISSN |
|
|
収録物識別子タイプ |
ISSN |
|
収録物識別子 |
2188-8639 |
| Notice |
|
|
|
SIG Technical Reports are nonrefereed and hence may later appear in any journals, conferences, symposia, etc. |
| 出版者 |
|
|
言語 |
ja |
|
出版者 |
情報処理学会 |