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 extens...
This paper introduces the Checker Framework, which supports adding pluggable type systems to the Jav...
This thesis discusses an application of the fuzz testing method for testing compilers and interprete...
Dynamically typed languages allow developers to write more expressive source code, but their lack of...
We propose a testing framework for validating static typing procedures in compilers. Our core compon...
Optimizing compilers are large and complex systems, potentially consisting of millions of lines of c...
Whenever code generation is used to abstract from low-level details or to provide high-level interfa...
We have created a framework for adding custom type qual-ifiers to the Java language in a backward-co...
To avoid receiving incorrect arguments, a method specifies the expected type of each formal paramete...
Static analysis has commonly beenknown as a technique for finding violations of superficial stylisti...
We introduce a general way to locate programmer mistakes that are detected by static anal-yses such ...
Although dynamically typed languages allow developers to be more productive in writing source code, ...
This is the artifact for the OOPSLA'21 paper "Well-Typed Programs Can Go Wrong: A Study of Typing-Re...
Abstract. Many low-level runtime engines and virtual machines are stack based- instructions take par...
use of program operations. They can be classified as either static or dynamic depending on when they...
Static type systems are a powerful tool for reasoning about the safety of programs. Global type infe...
This paper introduces the Checker Framework, which supports adding pluggable type systems to the Jav...
This thesis discusses an application of the fuzz testing method for testing compilers and interprete...
Dynamically typed languages allow developers to write more expressive source code, but their lack of...
We propose a testing framework for validating static typing procedures in compilers. Our core compon...
Optimizing compilers are large and complex systems, potentially consisting of millions of lines of c...
Whenever code generation is used to abstract from low-level details or to provide high-level interfa...
We have created a framework for adding custom type qual-ifiers to the Java language in a backward-co...
To avoid receiving incorrect arguments, a method specifies the expected type of each formal paramete...
Static analysis has commonly beenknown as a technique for finding violations of superficial stylisti...
We introduce a general way to locate programmer mistakes that are detected by static anal-yses such ...
Although dynamically typed languages allow developers to be more productive in writing source code, ...
This is the artifact for the OOPSLA'21 paper "Well-Typed Programs Can Go Wrong: A Study of Typing-Re...
Abstract. Many low-level runtime engines and virtual machines are stack based- instructions take par...
use of program operations. They can be classified as either static or dynamic depending on when they...
Static type systems are a powerful tool for reasoning about the safety of programs. Global type infe...
This paper introduces the Checker Framework, which supports adding pluggable type systems to the Jav...
This thesis discusses an application of the fuzz testing method for testing compilers and interprete...
Dynamically typed languages allow developers to write more expressive source code, but their lack of...