Return to search

Reverse Engineering of Scientific Computation FORTRAN Code

<p> In this day and age, many companies struggle with the maintenance of legacy scientific
software systems written in outdated programming languages. These languages use low-level control structures, algorithmic operations and cumbersome syntax that make the true meaning of an algorithm difficult to understand. To make matters worse, the process of reverse engineering the algorithm to specification often involves a considerable amount of manual work which is error-prone and time-consuming.</p> <p> This thesis explores a completely automated method of reverse engineering. We apply this method to FORTRAN77 linear algebra software. This software is transformed to an extension of FORTRAN77, which we call Fortran-M. This language allows for high-level mathematical constructs such as sums, products and vector and matrix operations. To serve as a proof-of-concept for this method, we have developed a tool which uses a combination of pattern matching on the source code's abstract syntax tree to recognise low-level control structures, and symbolic analysis to determine the meaning of loops. Once a pattern has been recognised, or a loop's invariant found, we apply transformations to the syntax tree, thus creating a Fortran-M equivalent.</p> / Thesis / Master of Applied Science (MASc)

Identiferoai:union.ndltd.org:mcmaster.ca/oai:macsphere.mcmaster.ca:11375/21347
Date25 July 2006
CreatorsDragon, Olivier Étienne
ContributorsCarette, Jacques, Wassyng, Alan, Computing and Software
Source SetsMcMaster University
Languageen_US
Detected LanguageEnglish
TypeThesis

Page generated in 0.0022 seconds