UCL Discovery
UCL home » Library Services » Electronic resources » UCL Discovery

Finding typing compiler bugs

Chaliasos, Stefanos; Sotiropoulos, Thodoris; Spinellis, Diomidis; Gervais, Arthur; Livshits, Benjamin; Mitropoulos, Dimitris; (2022) Finding typing compiler bugs. In: PLDI 2022: Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation. (pp. pp. 183-198). Association for Computing Machinery (ACM): San Diego, CA, USA. Green open access

[thumbnail of Gervais_pldi2022-paper15.pdf]
Preview
Text
Gervais_pldi2022-paper15.pdf - Accepted Version

Download (596kB) | Preview

Abstract

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 Hephaestus. 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.

Type: Proceedings paper
Title: Finding typing compiler bugs
Event: PLDI '22: 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation
Open access status: An open access version is available from UCL Discovery
DOI: 10.1145/3519939.3523427
Publisher version: https://doi.org/10.1145/3519939.3523427
Language: English
Additional information: This version is the author accepted manuscript. For information on re-use, please refer to the publisher’s terms and conditions.
Keywords: compiler bugs, compiler testing, static typing, Java, Kotlin, Groovy
UCL classification: UCL
UCL > Provost and Vice Provost Offices > UCL BEAMS
UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Engineering Science
UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Engineering Science > Dept of Computer Science
URI: https://discovery.ucl.ac.uk/id/eprint/10182832
Downloads since deposit
Loading...
97Downloads
Download activity - last month
Loading...
Download activity - last 12 months
Loading...
Downloads by country - last 12 months
Loading...

Archive Staff Only

View Item View Item