Affiliation:
1. Auburn University, USA
2. Virginia Tech, USA
3. Tennessee Technological University, USA
4. Github, USA
Abstract
Context:
Compilers are the fundamental tools for software development. Thus, compiler defects can disrupt development productivity and propagate errors into developer-written software source code. Categorizing defects in compilers can inform practitioners and researchers about the existing defects in compilers and techniques that can be used to identify defects systematically.
Objective:
The goal of this paper is to help researchers understand the nature of defects in compilers by conducting a review of Internet artifacts and peer-reviewed publications that study defect characteristics of compilers.
Methodology:
We conduct a multi-vocal literature review (MLR) with 26 publications and 32 Internet artifacts to characterize compiler defects.
Results:
From our MLR, we identify 13 categories of defects, amongst which optimization defects have been the most reported defects in our artifacts publications. We observed 15 defect identification techniques tailored for compilers and no single technique identifying all observed defect categories.
Conclusion:
Our MLR lays the groundwork for practitioners and researchers to identify defects in compilers systematically.
Funder
U.S. National Science Foundation
Publisher
Association for Computing Machinery (ACM)
Subject
General Computer Science,Theoretical Computer Science
Reference65 articles.
1. 2010. Can Compiler Optimization Introduce Bugs? Retrieved from https://stackoverflow.com/questions/2722302/can-compiler-optimization-introduce-bugs
2. Compilers: Principles, Techniques, and Tools;Aho Alfred V.;Addison Wesley,1986
3. How Practitioners Perceive the Relevance of ESEM Research
4. Not all bugs are the same: Understanding, characterizing, and classifying bug types
5. Well-typed programs can go wrong: a study of typing-related bugs in JVM compilers