Fortran Compiler Validation through AST Manipulation

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.