← 最新论文
💻 computer science

COBOLAssist: Analyzing and Fixing Compilation Errors for LLM-Powered COBOL Code Generation

本文针对大语言模型生成 COBOL 代码时普遍存在的编译错误问题,提出了名为 COBOLAssist 的迭代修复框架,通过利用编译反馈显著提升了代码的编译成功率与功能正确性,为遗留系统的自动化调试提供了有效路径。

原作者: Anh T. V. Dau, Shin Hwei Tan, Jinqiu Yang, Nghi D. Q. Bui, Anh Tuan Nguyen

发布于 2026-04-07
📖 1 分钟阅读☕ 轻松阅读

原作者: Anh T. V. Dau, Shin Hwei Tan, Jinqiu Yang, Nghi D. Q. Bui, Anh Tuan Nguyen

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

这篇论文讲述了一个关于**“如何教人工智能(AI)修补古老计算机语言代码”**的故事。

想象一下,你家里有一台非常古老但至关重要的**“古董保险柜”**(这就是 COBOL 系统),它掌管着银行、保险和政府的核心数据。虽然它很古老,但没人敢把它扔掉,因为里面的东西太重要了。然而,现在的问题有两个:

  1. 懂修保险柜的老工匠(COBOL 程序员)快退休了,年轻人不愿意学这门手艺。
  2. 最近,大家想用**“超级智能机器人”(大语言模型,LLM)来帮忙写代码或修代码,但这些机器人虽然聪明,却不太懂这种“古董语言”的规矩,经常写出一些“语法不通”**的代码,导致保险柜打不开(编译失败)。

这篇论文就是为了解决这个问题,他们发明了一个叫 COBOLAssist 的“智能修理工”。


1. 问题出在哪?(AI 的“水土不服”)

研究人员发现,当让 AI 写 COBOL 代码时,AI 犯的错误和人类老工匠犯的错误很不一样:

  • 人类老工匠:可能会因为太忙而漏写一个变量,或者把名字写错(就像写文章时偶尔拼错单词)。
  • AI 机器人
    • 结构混乱:COBOL 语言非常讲究“格式”,就像写诗要有严格的押韵和段落。AI 经常把段落搞混,比如在一个程序里写了两次“链接部分”(就像在一封信里写了两次“尊敬的收件人”),导致系统崩溃。
    • 乱用功能:AI 会“幻觉”,它以为 COBOL 的某个功能像 Python 或 Java 那样用,结果完全用错了格式。
    • 没写完:AI 经常写到一半就停了,忘了写“结束”的标志(就像讲故事讲到高潮突然说“好了,再见”,却不给结局)。

比喻:这就好比让一个只会说现代英语的 AI 去写莎士比亚时代的十四行诗。它知道单词,但不懂格律和古语规则,写出来的东西虽然看着像诗,但读起来全是乱码。

2. 解决方案:COBOLAssist(“试错 - 反馈”循环)

为了解决这个问题,作者没有让 AI 一次性就写出完美的代码,而是设计了一个**“自我纠错”**的循环系统,叫 COBOLAssist

它的运作方式就像是一个“学骑自行车的过程”:

  1. 第一次尝试:AI 根据题目写了一段代码。
  2. 摔倒(编译报错):代码拿去运行,编译器(就像严格的教练)发现错了,并告诉 AI:“第 41 行有个语法错误,你多写了一个链接部分。”
  3. 听反馈并修正:AI 看到教练的反馈,恍然大悟:“哦!原来这里不能这么写。”然后它修改代码。
  4. 再次尝试:把修改后的代码再拿去运行。
  5. 循环:如果还有错,教练继续指出,AI 继续改。这个过程会重复几次,直到代码能顺利运行,或者达到最大尝试次数。

比喻:以前是 AI 蒙着眼睛射箭,射不中也不管;现在是 AI 射出去后,有人告诉它“偏左了 5 厘米”,AI 调整一下再射,直到射中靶心。

3. 效果如何?(惊人的进步)

研究人员测试了包括 GPT-4 在内的多种 AI 模型,结果非常令人兴奋:

  • 成功率大爆发
    • 在使用这个“自我纠错”方法之前,GPT-4o 写的代码只有 41.8% 能成功运行。
    • 用了 COBOLAssist 之后,成功率飙升到了 95.89%
    • 对于另一个专门针对 COBOL 训练的模型(mAInframer),成功率甚至达到了 97.94%
  • 不仅仅是能运行:代码不仅能跑通,而且逻辑正确的概率(Pass@1)也大幅提高。

比喻:这就像原本只有 4 个学生能及格,经过“老师(编译器)”的耐心辅导和“学生(AI)”的反复订正后,9 个学生都能及格了。

4. 还有什么难点?(AI 的“天花板”)

虽然进步巨大,但研究也发现了一些 AI 暂时还搞不定的“硬骨头”:

  • 深层逻辑理解:如果错误涉及到非常复杂的逻辑结构,或者需要理解整段代码的上下文(比如“因为 A 变了,所以 B 和 C 都要变”),AI 有时候还是会晕。
  • 比喻:AI 很擅长纠正“错别字”和“标点符号”,但如果要它理解整篇文章的“深层含义”和“情感逻辑”,它偶尔还是会犯迷糊。

5. 总结与意义

这篇论文告诉我们:

  1. AI 很有潜力:虽然 AI 现在写古老语言还不完美,但通过“试错 + 反馈”的方法,它能变得非常可靠。
  2. 老系统有救了:随着懂 COBOL 的人越来越少,这种自动化的“修补工具”可以帮助企业维护那些至关重要的古老系统,不用担心代码没人修。
  3. 未来方向:未来的 AI 需要更懂“结构”和“逻辑”,而不仅仅是模仿文字。

一句话总结
这就好比给一个不懂古语的 AI 配了一位**“严厉但耐心的老教练”**(编译器反馈),通过不断的“犯错 - 被指出 - 改正”循环,让 AI 最终能熟练地驾驭古老的 COBOL 语言,拯救那些即将无人维护的“数字古董”。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →