COBOL 迁 Java,bug 一起搬

你公司那套跑了几十年、没人敢动的老系统,可能正在被 AI 盯上。

2026 年 7 月 30 日,一项发布在 arXiv 的研究提出了一种叫“锁匠循环”的方法,用来验证把遗留 COBOL 程序自动迁移成 Java 后,两者是否真的一致。研究团队为 COBOL 源码和生成的 Java 目标各准备一套模拟运行环境,在普通服务器上并行执行;再用智能体自动构造测试输入,逐层探索程序分支;遇到“锁住的段落”就分析条件、生成等价变异,直到打开新路。

他们试了三个真实案例,代码量从 430 行到 4114 行不等,两个开源程序几乎被测满,一个接近生产规模的内部程序也达到了 91.90% 的分支覆盖率。

兼容性真,不等于正确性真

有意思的是,论文专门强调:这种验证保证的是“兼容性真”,不是“语义正确真”。也就是说,Java 不仅要复现 COBOL 的原有功能,连它自带的 bug 都要一起搬过去,否则下游业务可能把“错误结果”当规则用了好几年,一改反而引发连锁故障。

说白了,银行、保险公司用 AI 迁移老代码时,最怕的不是“改对了没有”,而是“改完之后哪儿悄悄地不一样了”。锁匠循环的价值,就是把这种“不一样”在上线前自动抓出来。

给迁移团队的一句话

如果你的团队也在考虑让 AI 重写祖传代码,建议先别急着全量替换,而是拿一个小模块做这种并排验证。毕竟老系统的命根子不是代码多先进,而是业务连续性。

来源:Agentic Method for Deterministic Validation of Legacy Code Migration(arXiv:2607.28271,作者 Andras Ferenczi 等)