Legacy languages codebase conversion

It is known that to date there is a huge amount of code written in the “dead” languages like COBOL, old dialects of Fortran (modern one is fine though), JOVIAL, etc.

There is a framework that tries to solve this problem by source-to-source transformation - ROSE Compiler Framework. They have experimental translators from COBOL, JOVIAL, Fortran (old dialect), etc to C. But we are in 2019 now. Imagine the same will happen in 10 years for translation from C to Rust (or whatever else). Maybe it makes sense to skip the C stage right now? And with a mighty c2rust tool it is possible to chain the conversion today.

For example here is the story from Wikipedia:

Most software implemented in JOVIAL is mission critical, and maintenance is getting more difficult. In December 2014, it was reported that software derived from JOVIAL code produced in the 1960s was involved in a major failure of the United Kingdom’s air traffic control infrastructure, and that the agency that uses it was having to train its IT staff in JOVIAL so they could maintain this software, which was not scheduled for replacement until 2016.[7] Conversion of JOVIAL code to new platforms is therefore becoming more common. JOVIAL rehosting and retargeting is currently done by Software Engineering Associates. Conversions of JOVIAL to other languages is currently done by Semantic Designs, whose DMS Software Reengineering Toolkit was used to convert some of the JOVIAL mission software for the B-2 bomber to C.[8]

I opened a two bugs in the respective repositories if someone is interested:

See more information about JOVIAL2C product too.

1 Like