SPLASH 2021
Sun 17 - Fri 22 October 2021 Chicago, Illinois, United States
Thu 21 Oct 2021 07:40 - 07:55 at Zurich D - Corpus and User Studies - mirror Chair(s): Julian Dolby
Thu 21 Oct 2021 15:40 - 15:55 at Zurich D - Corpus and User Studies Chair(s): Iulian Neamtiu

Despite the substantial progress in compiler testing, research endeavors have mainly focused on detecting compiler crashes and subtle miscompilations caused by bugs in the implementation of compiler optimizations. Surprisingly, this growing body of work neglects other compiler components, most notably the front-end. In statically-typed programming languages with rich and expressive type systems and modern features, such as type inference or a mix of object-oriented with functional programming features, the process of static typing in compiler front-ends is complicated by a high-density of bugs. Such bugs can lead to the acceptance of incorrect programs (breaking code portability or the type system's soundness), the rejection of correct (e.g. well-typed) programs, and the reporting of misleading errors and warnings.

We conduct, what is to the best of our knowledge, the first empirical study for understanding and characterizing typing-related compiler bugs. To do so, we manually study 320 typing-related bugs (along with their fixes and test cases) that are randomly sampled from four mainstream JVM languages, namely Java, Scala, Kotlin, and Groovy. We evaluate each bug in terms of several aspects,
including their symptom, root cause, bug fix's size, and the characteristics of the bug-revealing test cases. Some representative observations indicate that: (1) more than half of the typing-related bugs manifest as unexpected compile-time errors: the buggy compiler wrongly rejects semantically correct programs, (2) the majority of typing-related bugs lie in the implementations of the underlying type systems and in other core components related to operations on types, (3) parametric polymorphism is the most pervasive feature in the corresponding test cases, (4) one third of typing-related bugs are triggered by non-compilable programs.

We believe that our study opens up a new research direction by driving future researchers to build appropriate methods and techniques for a more holistic testing of compilers.

Thu 21 Oct

Displayed time zone: Central Time (US & Canada) change

07:40 - 09:00
Corpus and User Studies - mirrorOOPSLA at Zurich D
Chair(s): Julian Dolby IBM Research, USA
07:40
15m
Talk
Well-Typed Programs Can Go Wrong: A Study of Typing-Related Bugs in JVM CompilersVirtual
OOPSLA
Stefanos Chaliasos Athens University of Economics and Business, Thodoris Sotiropoulos Athens University of Economics and Business, Georgios-Petros Drosos Athens University of Economics and Business, Charalambos Ioannis Mitropoulos Technical University of Crete, Dimitris Mitropoulos University of Athens, Diomidis Spinellis Athens University of Economics and Business; Delft University of Technology
DOI
07:55
15m
Talk
How Statically-Typed Functional Programmers Write CodeVirtual
OOPSLA
Justin Lubin University of California at Berkeley, Sarah E. Chasins University of California at Berkeley
DOI
08:10
15m
Talk
What We Eval in the Shadows: A Large-Scale Study of Eval in R ProgramsVirtual
OOPSLA
Aviral Goel Northeastern University, Pierre Donat-Bouillud Czech Technical University, Filip Křikava Czech Technical University, Christoph Kirsch University of Salzburg; Czech Technical University, Jan Vitek Northeastern University; Czech Technical University
DOI
08:25
35m
Live Q&A
Discussion, Questions and Answers
OOPSLA

15:40 - 17:00
Corpus and User StudiesOOPSLA at Zurich D -8h
Chair(s): Iulian Neamtiu New Jersey Institute of Technology
15:40
15m
Talk
Well-Typed Programs Can Go Wrong: A Study of Typing-Related Bugs in JVM CompilersVirtual
OOPSLA
Stefanos Chaliasos Athens University of Economics and Business, Thodoris Sotiropoulos Athens University of Economics and Business, Georgios-Petros Drosos Athens University of Economics and Business, Charalambos Ioannis Mitropoulos Technical University of Crete, Dimitris Mitropoulos University of Athens, Diomidis Spinellis Athens University of Economics and Business; Delft University of Technology
DOI
15:55
15m
Talk
How Statically-Typed Functional Programmers Write CodeVirtual
OOPSLA
Justin Lubin University of California at Berkeley, Sarah E. Chasins University of California at Berkeley
DOI
16:10
15m
Talk
What We Eval in the Shadows: A Large-Scale Study of Eval in R ProgramsVirtual
OOPSLA
Aviral Goel Northeastern University, Pierre Donat-Bouillud Czech Technical University, Filip Křikava Czech Technical University, Christoph Kirsch University of Salzburg; Czech Technical University, Jan Vitek Northeastern University; Czech Technical University
DOI
16:25
35m
Live Q&A
Discussion, Questions and Answers
OOPSLA