AI News HubLIVE
站内改写1 分钟阅读

AI 将遗留 COBOL 程序迁移到 Java,连 bug 也一并保留

这项研究提出“Locksmith Loop”智能体测试合成方法,用于确定性验证 AI 将遗留 COBOL 程序迁移到 Java 的结果。该方法在普通硬件上运行经过 mock 计装的 COBOL 与 Java 环境,通过迭代式见证搜索和奇偶校验变异深入程序分支。在 430 至 4,114 行的三个案例中,开源程序实现近乎完全分支覆盖,生产级程序达到 91.90% 分支覆盖,所有接受用例均通过确定性奇偶校验。

来源Hacker News AI作者: felineflock

将遗留 COBOL 程序迁移到 Java 一直是软件工程中的棘手问题:业务逻辑往往运行数十年,缺少完整的测试数据,且难以覆盖所有边界情况。随着 AI 辅助编码的普及,模型可以快速生成 Java 代码,但如何证明迁移结果与原有 COBOL 程序行为一致,仍然缺乏系统性方案。近日一篇提交至 arXiv 的论文提出了一种名为“Locksmith Loop(锁匠循环)”的智能体测试合成方法,专门用于对 AI 生成的遗留代码迁移结果做确定性验证。

该方法首先准备两套运行时环境:将 COBOL 源代码和生成的 Java 目标代码分别用 mock(模拟对象)进行插桩,并在大型机之外的普通商用硬件上执行。随后,一个迭代式智能体循环开始运行:Witness Search 阶段在输入 mock 空间中进行搜索,以穿透程序中的更多分支;接着执行保持奇偶校验一致的变异(parity-preserving mutations)。当程序到达路由边界时,分析器会识别出一个“Locked Paragraph”——即阻碍更深入探索的条件。

研究团队在三个 COBOL 到 Java 的案例上验证了该方法,涵盖两个开源程序和一个内部生产级 COBOL 程序,源程序规模从 430 行到 4,114 行不等。结果表明,Locksmith 能持续超越单纯输入搜索的覆盖率平台:两个开源程序达到近乎完全的分支覆盖,内部生产级程序达到 91.90% 的分支覆盖率。在所有被接受的测试用例中,生成的 Java 代码均通过确定性奇偶校验,与 COBOL 参考实现保持一致。

论文作者 Andras Ferenczi 及另外四位合作者认为,这是首次使用确定性 oracle 验证智能体编码输出的新颖方法。论文共 11 页,包含 6 幅图,于 2026 年 7 月 30 日提交,分类为软件工程(cs.SE)与人工智能(cs.AI)。这项研究提示,AI 迁移遗留系统不仅需要“会写代码”,更需要“能验证代码”的闭环——而这种验证甚至可能保留原程序中的既有 bug,正如论文标题所暗示的那样。

AI 将遗留 COBOL 程序迁移到 Java,连 bug 也一并保留 | AI News Hub