Automated Conversion of Structured Fortran 77 Ccode Into Object-Oriented C++ Code


Thesis.pdf (93.91 MB)
Downloads: 2907

TR Number



Journal Title

Journal ISSN

Volume Title


Virginia Tech


The maintenance of legacy software systems that were developed using a procedural design approach is becoming increasingly expensive. The procedural approach is often ill suited for complex systems that need to integrate with other codes. Furthermore, these legacy systems are usually written in FORTRAN, for which there is increasingly less personnel available compared to, say, C++. While it would be desirable to convert these legacy systems into object-oriented codes described in C++, such a conversion process is nontrivial. Currently, the structural design must be manually examined, interpreted, and converted into an object-oriented design described in an object-oriented language. Therefore, the conversion process is likely to introduce numerous new inconsistencies and errors, which degrades the software's quality and increases its costs.

The preferred solution would be to automate this conversion process. Automation would promote consistency by eliminating the manual variations in interpretation and implementation. It would therefore maximize the likelihood that the converted code does not introduce new errors relative to the original code.

The work presented here automates the conversion process from procedural design described in the FORTRAN77 language into object-oriented design described in the C++ language. It demonstrates the extraction of object-oriented elements using FORTRAN common block structures and FORTRAN subroutine and function-calling hierarchies. The result is a consistent, first-cut converted design, which enhances cohesion within classes and reduces coupling between classes. This result is described in the contemporary, broadly used computer language C++, which integrates with adjacent modules that might still remain procedural and described in FORTRAN.



object-oriented, structured, legacy code, automated conversion