← 最新论文
🤖 AI

Revisiting the Role of Natural Language Code Comments in Code Translation

本文通过一项大规模实证研究表明,自然语言代码注释(尤其是描述代码整体用途的注释)能显著提高代码翻译的准确性,并据此提出了 COMMENTRA 方法,该方法有望使基于大语言模型的翻译性能提升一倍。

原作者: Monika Gupta, Ajay Meena, Anamitra Roy Choudhury, Vijay Arya, Srikanta Bedathur

发布于 2026-01-26
📖 1 分钟阅读☕ 轻松阅读

原作者: Monika Gupta, Ajay Meena, Anamitra Roy Choudhury, Vijay Arya, Srikanta Bedathur

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

想象一下,你正在尝试将一本书从一种语言翻译成另一种语言,但使用的不是人类翻译员,而是一个非常聪明、却有点过于刻板的机器人。这个机器人读过数百万本书,但有时它会对特定的句子结构感到困惑,从而忽略了作者真正的“大意”。

这篇论文是关于如何给这个机器人一份有用的“小抄”——即以注释(用纯英文编写的笔记)的形式——来帮助它将计算机代码从一种编程语言转换为另一种编程语言(比如把 Python 代码变成 Java 代码)。

以下是他们研究结果的拆解,使用了简单的类比:

1. 核心问题:注释真的有帮助吗?

研究人员提出了一个问题:如果我们添加简单的英文笔记来解释代码的功能,机器人能否更好地进行翻译?

答案是: 情况是“是的,但是……”。

  • 好的方面: 有时,这些笔记就像是一个导游。它们告诉机器人:“嘿,这一整块内容是关于对列表进行排序的,”于是机器人就能理解正确。
  • 坏的方面: 有时,这些笔记会变成一种干扰。如果笔记太长、太复杂或者用词不当,机器人就会分心,甚至比没有笔记时犯更多的错误。

2. 实验:大规模翻译测试

团队不仅仅是在凭空猜测;他们进行了一场大规模的实验。

  • 参与者: 他们使用了来自五种不同编程语言(C、C++、Go、Java、Python)的 1,100 个不同代码片段。
  • 流程: 他们提取了这些代码片段,并要求几种不同的 AI 模型进行翻译。
    • 第一轮:没有笔记的情况下翻译代码。
    • 第二轮: 在添加了 AI 生成的笔记后进行翻译。
  • 规模: 他们进行了超过 80,000 次翻译,以获得清晰的结论。

3. 关键发现(“顿悟时刻”)

A. 并非所有笔记都一样好

  • 短小精悍胜出: 最好的笔记是简短、简单的句子,用于解释代码的主要目标(例如:“此函数计算总价”)。
  • 冗长复杂落败: 那些试图解释每一个微小细节、警告每一个可能出现的错误或列出复杂数学公式的笔记,往往会让机器人感到困惑。这就像是在司机开车时,递给他一本长达 10 页的发动机工作手册;他们只会感到不知所措。
  • “网格”陷阱: 在一个有趣的例子中,一条笔记使用了“grid(网格)”这个词。机器人产生了误解,认为“grid”是代码中的一个特定变量名,于是试图创建一个并不存在的物理网格,导致程序崩溃。

B. 语言至关重要

  • 英语是王道: 当笔记用英文编写时,翻译效果最好。尽管机器人很聪明,但对于这项特定任务,英文笔记似乎是它们理解得最好的“母语”。用法语、中文或日语编写的笔记帮助并不大。

C. 笔记的位置很重要

  • 紧贴动作处: 将笔记放在紧邻其描述的代码行旁边效果最好。
  • “伪代码”失败: 将一大段“伪代码”(用英文编写的虚假代码)放在文件顶部的做法,效果不如在实际代码中散布简单的注释。

4. 解决方案:“COMMENTRA”(智能翻译器)

由于添加笔记有时有帮助,而有时会有害,研究人员开发了一种名为 COMMENTRA 的新方法。你可以把它看作是一个“尝试、检查、修复”的循环:

  1. 首先尝试: 机器人尝试在没有任何笔记的情况下翻译代码。
  2. 检查: 如果翻译完美运行,太棒了!结束。
  3. 修复: 如果翻译失败(崩溃或给出错误答案),那么系统会在原始代码中添加有用的英文笔记。
  4. 重试: 机器人带着笔记再次尝试。

结果: 这种“智能”方法不仅带来了一点提升,它在许多情况下将成功率翻倍了。因为它只在绝对必要时才使用昂贵的“添加笔记”步骤,从而节省了成本和时间。

总结

论文得出结论:自然语言注释是翻译代码的强大工具,但必须谨慎使用。它们就像是一个聚光灯:如果你把它照在代码的正确部分,机器人就能看得清清楚楚;如果你到处乱照,或者照在错误的东西上,机器人就会被晃瞎眼。通过使用像 COMMENTRA 这样智能的、循序渐进的方法,我们可以兼顾两者的优点:高质量的翻译且不会产生混乱。

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

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

试用 Digest →