Please use this identifier to cite or link to this item:
http://hdl.handle.net/11375/21347
Title: | Reverse Engineering of Scientific Computation FORTRAN Code |
Authors: | Dragon, Olivier Étienne |
Advisor: | Carette, Jacques Wassyng, Alan |
Department: | Computing and Software |
Keywords: | reverse engineering, scientific computation, FORTRAN code, programming languages, algorithm |
Publication Date: | 25-Jul-2006 |
Abstract: | <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> |
URI: | http://hdl.handle.net/11375/21347 |
Appears in Collections: | Digitized Open Access Dissertations and Theses |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
Dragon_Olivier_E._2006Jul_Masters..pdf | 2.88 MB | Adobe PDF | View/Open |
Items in MacSphere are protected by copyright, with all rights reserved, unless otherwise indicated.