Researcher(s)
- Siddharth Lokula, Computer Science, University of Delaware
Faculty Mentor(s)
- Xing Gao, Computer Science, University of Delaware
Abstract
Compilers are the foundation on top of which modern software programs are built. They are responsible for taking code in a chosen language and translating it into a format readable by a machine. In addition, compilers provide many features that are leveraged by specific systems such as HPC (High Performance Computing) systems to improve performance or ensure correctness of code. As a result, compilers have become increasingly more complicated over the years and become vulnerable to bugs. Compiler validation is a research field aimed at ensuring compiler correctness to promote software developer trust that bug-free code will execute bug-free. One of the methods developed for this purpose is EMI (Equivalence Modulo Inputs) Testing: a form of validation through unbreakable truths among variables. This methodology has revealed multiple bugs within widely used compilers and languages; however, little research has been done on its effectiveness in older languages. This paper introduces a new method of utilizing EMI Testing on an older language, Fortran, by exploiting different representations of code within a compiler. The intended effects of this research is to expand upon the avenues in which EMI Testing can be utilized as this methodology is prone to finding less bugs over time.



