> 1. Both systems run with the same fixed input files (data/accounts.dat, data/txns.dat).
> 2. Each writes its results to out/accounts_out_*.dat.
> 3. Python scripts convert fixed-width output to CSV and compute SHA-256 checksums.
> 4. If the hashes match — behavior is proven identical.
Step 3 above introduces the possibility that the python scripts alter the output in such a way that the outputs don't actually match prior to the python.
I'm curious why step 3 is not "If the two outputs match — behavior is proven identical."
The problem I have with all Cobol translation models is that it completely ignores the actual modernization of the system. You've traded one type of syntactic sugar with another.
I’ve been experimenting with formal, verifiable modernization and taking a small COBOL batch program and translating it through an intermediate representation and Alloy formal model into Kotlin, while proving equivalence with the legacy output.
> 1. Both systems run with the same fixed input files (data/accounts.dat, data/txns.dat).
> 2. Each writes its results to out/accounts_out_*.dat.
> 3. Python scripts convert fixed-width output to CSV and compute SHA-256 checksums.
> 4. If the hashes match — behavior is proven identical.
Step 3 above introduces the possibility that the python scripts alter the output in such a way that the outputs don't actually match prior to the python.
I'm curious why step 3 is not "If the two outputs match — behavior is proven identical."
The problem I have with all Cobol translation models is that it completely ignores the actual modernization of the system. You've traded one type of syntactic sugar with another.
you mean cobol 2002+ revisions ?
Isn't the first code sample pasted in there twice?
Yes, starting at:
Then the code repeats.I’ve been experimenting with formal, verifiable modernization and taking a small COBOL batch program and translating it through an intermediate representation and Alloy formal model into Kotlin, while proving equivalence with the legacy output.
Repo: https://github.com/marcoeg/cobol-modernization-playbook
Would love feedback from people who’ve worked on reverse engineering or legacy transformations at scale.
Source code: https://github.com/marcoeg/cobol-modernization-playbook