3.8 Proceedings Paper

Finding Typing Compiler Bugs

出版社

ASSOC COMPUTING MACHINERY
DOI: 10.1145/3519939.3523427

关键词

compiler bugs; compiler testing; static typing; Java; Kotlin; Groovy

资金

  1. European Union [825328]

向作者/读者索取更多资源

This paper presents a testing framework for validating static typing procedures in compilers. The framework utilizes a program generator to produce programs that are likely to trigger typing compiler bugs and introduces two novel approaches to reveal type inference and soundness compiler bugs. By testing the compilers of three popular JVM languages, the study identifies numerous errors in critical components related to static typing.
We propose a testing framework for validating static typing procedures in compilers. Our core component is a program generator suitably crafted for producing programs that are likely to trigger typing compiler bugs. One of our main contributions is that our program generator gives rise to transformation-based compiler testing for finding typing bugs. We present two novel approaches (type erasure mutation and type overwriting mutation) that apply targeted transformations to an input program to reveal type inference and soundness compiler bugs respectively. Both approaches are guided by an intra-procedural type inference analysis used to capture type information flow. We implement our techniques as a tool, which we call HE. The extensibility of HEPHAESTUS enables us to test the compilers of three popular JVM languages: Java, Kotlin, and Groovy. Within nine months of testing, we have found 156 bugs (137 confirmed and 85 fixed) with diverse manifestations and root causes in all the examined compilers. Most of the discovered bugs lie in the heart of many critical components related to static typing, such as type inference.

作者

我是这篇论文的作者
点击您的名字以认领此论文并将其添加到您的个人资料中。

评论

主要评分

3.8
评分不足

次要评分

新颖性
-
重要性
-
科学严谨性
-
评价这篇论文

推荐

暂无数据
暂无数据