Neural Code Translation of Legacy Code: APL to C#
本文提出了一种利用大语言模型将遗留 APL 代码翻译为 C# 的新颖框架,证明引导式策略(如检索增强和迭代优化)结合自动化评估流程,尽管面临 APL 稀疏语法和训练数据有限的挑战,仍能显著提升翻译质量。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你拥有一座巨大的古老图书馆,其中的书籍是用一种名为APL的秘密、高度压缩的代码写成的。这种代码是几十年前一小群数学家和工程师使用的速记语言。它极其强大,但看起来却像是一堆奇怪的符号(如 ⍉、⍳ 和 ⌈)的杂乱组合,大多数现代程序员都无法阅读。
现在,想象你需要将所有这些书籍搬迁到一座用**C#**编写的现代图书馆中,C# 是当今软件巨头所使用的语言。问题在于?这两种语言说着完全不同的方言。APL 就像一场流畅的数学之舞,其中一行代码就能完成 C# 中整整一段的工作。而 C# 则 rigid(严格)、结构化,要求你详细解释每一个步骤。
本文是一份报告,讲述了一组研究人员试图构建一个机器人翻译器(利用人工智能),以自动将这些古老书籍从 APL 图书馆迁移到 C# 图书馆。
以下是他们如何做到的简单说明:
问题:“翻译丢失”的鸿沟
研究人员发现,标准的人工智能翻译器往往无法完成这项任务。原因如下:
- 字母表很怪异:APL 使用特殊符号,大多数 AI 模型从未见过。这就像试图教机器人阅读一种用它无法理解的表情符号写成的语言。
- 逻辑不同:APL 一次处理整组数字(就像一桶水),而 C# 通常一次只处理一个数字(就像一滴水)。AI 必须弄清楚如何将“桶”分解为“水滴”,同时不丢失逻辑。
- 没有词典:几乎没有成对的 APL 代码和 C# 代码示例供 AI 学习。这就像试图在没有教科书的情况下学习一门新语言。
解决方案:机器人的三个“助手”
研究人员测试了四种不同的方法来帮助 AI 翻译器。可以将这些方法视为帮助学生在困难考试中取得不同级别辅助的方式:
“独自”尝试(基线):AI 被给予 APL 代码,并被告知:“只需写出 C# 代码。”
- 结果:AI 感到困惑。它经常写出看起来不错但实际上无法运行的代码,或者因为忘记了 C# 的规则而崩溃。
“翻译者笔记”(自然语言):在编写代码之前,要求 AI 先用 plain English(通俗英语)解释 APL 代码在做什么(就像人类翻译员写摘要一样)。然后,它利用该摘要来编写 C# 代码。
- 结果:这非常有帮助。通过迫使 AI 先用英语“思考”含义,它减少了错误。
“作弊条”(检索):AI 被给予一叠参考卡片(包含 APL 规则和示例的数据库),并被要求在编写之前查找所需的特定规则。
- 结果:这还可以,但有时 AI 会选错参考卡片,因此其帮助不如“翻译者笔记”大。
“试运行”(迭代优化):这是获胜者。AI 编写代码,然后计算机尝试运行它。如果代码崩溃或给出错误答案,计算机就会大喊:“错误!再试一次!”AI 读取错误信息,修正其工作,然后再次尝试。它会一直这样做,直到代码完美运行。
- 结果:这产生了最佳结果。这就像学生参加模拟测试,看到自己的错误,然后重新参加考试直到获得 A。
秘密武器:“方法签名”
研究人员还发现了一个关键技巧。由于 C# 对类型非常严格(它需要知道一个数字是整数还是小数),他们在 AI 开始编写之前,就给了它一个函数形状的“蓝图”。这就像给 AI 一个模板,上面写着:“此函数接受两个数字列表,并返回一个‘是/否’答案列表。”有了这个蓝图,AI 编写的代码要准确得多。
他们的发现(结果)
- AI 可以做到,但需要帮助:原始 AI 模型目前还不擅长这项工作。但是,如果你给它“蓝图”,要求它先用英语解释逻辑,并让它练习修正自己的错误,它就会变得非常擅长这项工作。
- 数据越多 = 结果越好:他们喂给 AI 的 APL 到 C# 配对示例越多,AI 的表现就越好。然而,他们发现,即使数据量相对较小,“试运行”方法的效果也出奇地好。
- 主要敌人不是语法,而是逻辑:大多数时候,AI 能够编写出可以编译(运行而不崩溃)的代码,但它并没有完全执行原始 APL 代码所做的操作。最难的部分是理解数学的意图,而不仅仅是代码的拼写。
底线
研究人员成功构建了一个管道,可以自动将古老神秘的 APL 代码转换为现代可用的 C# 代码。他们证明,通过结合微调(专门训练)、解释(英语摘要)和反馈循环(修正错误),AI 可以弥合这两个截然不同的世界之间的鸿沟。这意味着,拥有用 APL 编写的旧关键系统的公司,最终可能能够在不必雇佣稀有且昂贵的专家手动重写所有内容的情况下,对这些系统进行现代化改造。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。