Optimizing compilers are large and complex systems, potentially consisting of millions of lines of code. As a result, the implementation of an industry standard compiler can contain several serious bugs. This is alarming given the critical part that software plays in modern society. Therefore, we investigate type-directed program generation and shrinking for the testing of compilers for imperative programming languages. We implement a type-directed generator and shrinker for a subset of C in Haskell. The generator is capable of generating type-correct programs that contain variable mutations and challenging program constructs, such as while-statements and if statements. We evaluate the quality of the generated programs by measuring statemen...
Compiler fuzzing techniques require a means of generating programs that are free from undefined beha...
Compilers, as one of the most important infrastructure of today's digital world, are expected to be ...
Typed programming languages offer safety guarantees that help programmers write correct code, but ty...
Optimizing compilers are large and complex systems, potentially consisting of millions of lines of c...
We propose a testing framework for validating static typing procedures in compilers. Our core compon...
This paper considers random testing of a compiler, using randomly generated programs as inputs, and ...
Modern programs in languages like Haskell include a lot of information beyond what is strictly requi...
Whenever code generation is used to abstract from low-level details or to provide high-level interfa...
Traditionally, compilers available to the software developer/tester have only supported two software...
Compilers should be correct. To improve the quality of C compilers, we created Csmith, a randomized ...
Compilers for monomorphic languages, such as C and Pascal, take advantage of types to determine data...
Type error messages of compilers of statically typed functional languages are often inaccurate, maki...
Flaws in computer software are a fact of life, both in small and large-scale applications. Compile...
AbstractThe use of typed intermediate languages can significantly increase the reliability of a comp...
To efficiently execute dynamically typed languages, many language implementations have adopted a two...
Compiler fuzzing techniques require a means of generating programs that are free from undefined beha...
Compilers, as one of the most important infrastructure of today's digital world, are expected to be ...
Typed programming languages offer safety guarantees that help programmers write correct code, but ty...
Optimizing compilers are large and complex systems, potentially consisting of millions of lines of c...
We propose a testing framework for validating static typing procedures in compilers. Our core compon...
This paper considers random testing of a compiler, using randomly generated programs as inputs, and ...
Modern programs in languages like Haskell include a lot of information beyond what is strictly requi...
Whenever code generation is used to abstract from low-level details or to provide high-level interfa...
Traditionally, compilers available to the software developer/tester have only supported two software...
Compilers should be correct. To improve the quality of C compilers, we created Csmith, a randomized ...
Compilers for monomorphic languages, such as C and Pascal, take advantage of types to determine data...
Type error messages of compilers of statically typed functional languages are often inaccurate, maki...
Flaws in computer software are a fact of life, both in small and large-scale applications. Compile...
AbstractThe use of typed intermediate languages can significantly increase the reliability of a comp...
To efficiently execute dynamically typed languages, many language implementations have adopted a two...
Compiler fuzzing techniques require a means of generating programs that are free from undefined beha...
Compilers, as one of the most important infrastructure of today's digital world, are expected to be ...
Typed programming languages offer safety guarantees that help programmers write correct code, but ty...