A veteran programmer recently received a visit from his two-year-old granddaughter. As they spent time together, he recalled that back in 1997, he had developed an app using Visual Basic 4.0 that might entertain her. However, the problem was that he only had the executable file, and running it on his current computers wasn’t easy. He came up with an idea.
Translating an old app into Python. He shared his experience on Reddit, where he mentioned uploading the executable file as input for the newly released AI model, Claude 3.7. He made a straightforward request: “Can you tell me how to get this file running? I think it was from Visual Basic 4. It’d be nice to convert it to Python.”
Reverse engineering (sort of). Interestingly, Claude 3.7 provided some initial warnings but then proceeded to analyze the binary file. It successfully identified several components of the program and went further by translating that code into Python, utilizing the Pygame library.
Modernized code. The AI model perfectly replicated the functionality of the original program. It also provided clear instructions on installing and running the updated version without any issues. Notably, it worked flawlessly from the very first moment–all within five minutes.
As many modifications as you need. Later, the man asked for enhancements such as associating specific sounds with the space bar and adding colored fonts. Claude 3.7 successfully modified the code to implement these improvements.
One drawback. The Reddit user shared the entire conversation with Claude so that others could review the process he followed. He noted that Visual Basic generates P-Code, which contains recognizable elements but lacks sufficient detail for effective reverse engineering.
The door is open for the modernization of many older software projects. While Visual Basic’s pseudocode can facilitate the reverse engineering process, it also highlights the potential for updating and improving legacy software apps.
A way forward for legacy systems built with COBOL or FORTRAN? Long-established programming languages such as COBOL and FORTRAN remain crucial in industries like banking. As such, systems that ensure compatibility with these older apps must be maintained.
A shortage of programmers. Few developers are proficient in these languages, which makes translating them into more modern programming languages particularly appealing. In 2023, IBM introduced an AI-based project to translate COBOL programs, although it’s unclear whether significant progress has been achieved in that area. The advancements made by Claude 3.7 certainly open new possibilities for these kinds of translations.
The case of MOCAS. MOCAS is a software system created in 1958 that the U.S. government uses for managing contracts. Originally programmed in Flow-Matic and later in COBOL, MOCAS is still operational today. However, the government has been exploring ways to modernize it. Tools like Claude 3.7 or similar AI models might provide solutions to this challenge.
A challenging task. While the veteran programmer’s example is noteworthy, it involved a relatively small app. Projects like MOCAS are significantly more complex and interconnected with various other systems, making reverse engineering and translation considerably more difficult. However, this doesn’t imply that it’s impossible. In fact, Claude 3.7 and other similar models could be the tools developers need to tackle this daunting task.
Image | charlesdeluvio
Log in to leave a comment