郭德贵,王冠成,吕帅,刘磊.peC语言的部分求值器及在编译器测试中的应用.软件学报,2017,28(5):1221-1232 |
peC语言的部分求值器及在编译器测试中的应用 |
Partial Evaluator for peC and Its Application to Compiler Validation |
投稿时间:2016-06-02 修订日期:2016-09-25 |
DOI:10.13328/j.cnki.jos.005206 |
中文关键词: 部分求值 剩余程序 测试用例 编译器测试 抽象语法树 |
英文关键词:partial evaluation redundant program test case compiler testing abstract syntax tree |
基金项目:吉林省科技发展计划(20150101054JC,20140520069JH,20150520060JH);国家自然科学基金(61300049);教育部高等学校博士学科点专项科研基金(20120061120059);吉林大学研究生创新基金(2016181) |
|
摘要点击次数: 2618 |
全文下载次数: 2092 |
中文摘要: |
部分求值技术在程序优化及软件自动生成等方面起着极为重要的作用.将部分求值技术应用到编译器测试中.为此,设计了一种C语言的子集peC语言,给出了该语言的部分求值策略的形式化描述,实现了peC语言的部分求值器,设计了基于部分求值技术的编译器测试框架.通过实验,该方法可以检测出大部分之前其他方法发现的GCC,LLVM编译器中的错误,此外还发现了其他方法不能发现的错误,这表明,将部分求值技术应用到编译器测试中是有效的. |
英文摘要: |
Partial evaluation plays an important role in many areas such as program optimization and automatic software generation. This paper applies partial evaluation to validating compilers. The design of peC, which is a subset of C, and the formalized description of partial evaluation strategy for peC are presented. Furthermore, the implementation of a partial evaluator for peC, and a compiler testing framework based on partial evaluation are provided. Experiments show that this new approach can not only detect errors which can be detected by other methods in GCC and LLVM but also found some errors which are not detected by the other methods. In summary, the work by this paper demonstrates applying partial evaluation in testing compilers is effective. |
HTML 下载PDF全文 查看/发表评论 下载PDF阅读器 |