Title: SHF:Small:Compiler Validation via Equivalence Modulo Input
Compilers are among the most widely-used and complex software systems ever written; they are the trusted foundation for building other software. Perhaps less known is that production compilers also frequently contain bugs, which frustrate programmers and may lead to mysterious program failures and disasters. Compiler validation is both scientifically and technically challenging. The intellectual merits of this project are novel methodologies and practical techniques for validating production compilers. The project's broader significance and importance are improved reliability and usability of modern compilers. It also indirectly improves the quality of every piece of software upon which society increasingly depends.
Technically, this project is centered around equivalent modulo input (EMI), a general concept and approach for validating compilers. A basic realization of EMI is effective and has discovered more than a hundred important bugs in widely-used compilers. This project builds on that success and focuses on three main directions: develop advanced strategies to realize EMI's full potential, test a compiler's diagnostic support and performance, and generalize techniques toward testing C++ and OpenMP compilers. The project aims to significantly advance our knowledge and state-of-the-art practices on validating and engineering reliable and usable compilers.