CangjieBench: Benchmarking LLMs on a Low-Resource General-Purpose Programming Language

本文提出了针对低资源通用编程语言 Cangjie 的无污染基准测试 CangjieBench,通过系统评估多种 LLM 在四种生成模式下的表现,揭示了直接生成效果不佳、语法约束生成性价比最高以及代码到代码翻译存在负迁移等现象。

Junhang Cheng, Fang Liu, Jia Li, Chengru Wu, Nanxiang Jiang, Li Zhang

发布于 2026-03-17
📖 1 分钟阅读☕ 轻松阅读

Each language version is independently generated for its own context, not a direct translation.

这篇论文讲述了一个关于**“教大模型学一门新语言”**的有趣故事。

想象一下,现在的 AI(大语言模型)就像是一个精通几十种古老语言的超级翻译官。它精通英语(Python)、法语(C++)等“热门语言”,因为全世界有海量的书籍和资料供它学习。

但是,突然有一天,华为推出了一门全新的编程语言叫**“仓颉”(Cangjie)。这门语言非常现代、强大,专为未来的智能设备设计,但因为太新了,世界上几乎没有现成的教材、代码库或书籍。这就好比让那位超级翻译官去学一门只有几个人会说的、刚发明出来的“外星语”**。

这篇论文就是为了解决这个难题而诞生的。

1. 他们做了什么?(CANGJIEBENCH 基准测试)

为了测试这些 AI 到底能不能学会这门“外星语”,作者们没有去网上乱抓代码(因为网上根本没有),而是想了一个聪明的办法:

  • 人工翻译法:他们找来了 AI 已经非常擅长的两道经典编程考题(HumanEval 和 ClassEval,就像小学和中学的数学题),然后人工把这些题目从 Python(热门语言)“翻译”成了仓颉语(冷门语言)。
  • 零污染:因为是人类手写的,AI 以前绝对没在训练数据里见过,所以这能真实地测出 AI 是“真的学会了”还是“死记硬背”。
  • 双重任务
    1. 听写(Text-to-Code):给 AI 一个自然语言描述(比如“写个函数算加法”),看它能不能写出仓颉代码。
    2. 翻译(Code-to-Code):给 AI 一段 Python 代码,让它直接翻译成仓颉代码。

2. 他们怎么教 AI?(四种策略大比拼)

既然 AI 没学过这门语言,作者们尝试了四种不同的“教学策略”来看看哪种最有效:

  • 策略一:直接硬考(Direct Generation)

    • 比喻:把 AI 扔进考场,只给题目,没有任何提示。
    • 结果惨败。AI 就像个完全不懂外语的人,写出来的代码全是语法错误,连编译器都跑不通。
  • 策略二:发小抄(Syntax-Constrained Generation)

    • 比喻:给 AI 一张**“仓颉语速查小抄”**(语法速成表),告诉它:“注意!这里要用 Int64 而不是 int,这里要用 String 而不是 str"。
    • 结果效果惊艳! AI 的得分瞬间从 4% 飙升到 50% 以上。这说明 AI 其实逻辑能力很强(知道怎么解题),只是不懂语法格式。只要给点提示,它就能立刻上手。而且这种方法最省钱(消耗的计算资源最少)。
  • 策略三:查资料(RAG - 检索增强生成)

    • 比喻:允许 AI 在考试时去查“仓颉语字典”或“官方文档”。
    • 结果:比直接硬考好,但不如“发小抄”好用。因为 AI 有时候不知道查什么关键词,或者查回来的资料太碎,它反而被搞晕了。
  • 策略四:派个助手(Agent - 智能体)

    • 比喻:给 AI 配了一个**“私人导师”**。AI 可以主动去查文档、运行代码、发现错误、再查文档、再修改……像人类程序员一样反复折腾。
    • 结果准确率最高(接近 80%),但代价巨大。它消耗的计算资源是“发小抄”方法的几百倍,就像为了做一道菜,请了个厨师团队还开了个宴会,虽然菜好吃,但太贵了,不实用。

3. 一个意想不到的发现

作者发现了一个有趣的现象:“直接翻译”反而比“听写”更难。

  • 比喻:如果你让 AI 看着 Python 代码去写仓颉代码(翻译),它反而容易犯错。
  • 原因:AI 太依赖原来的 Python 习惯了。它就像个顽固的翻译官,看到 Python 的写法,就忍不住把仓颉语也写成 Python 的样子(比如动态类型写成了静态类型),导致“负迁移”(越帮越忙)。
  • 启示:有时候,忘掉旧语言,直接根据新语言的规则去构思,反而比死板地翻译旧代码更准确。

4. 总结与意义

这篇论文告诉我们:

  1. AI 很聪明,但需要“脚手架”:对于全新的编程语言,AI 不需要重新训练(那太贵太慢),只需要给它简洁的语法规则(小抄),它就能迅速掌握。
  2. 性价比之王:在“发小抄”和“派助手”之间,**“发小抄”**是性价比最高的方案。既准又快,还省钱。
  3. 未来的方向:随着更多新语言(如未来的 AI 专用语言)出现,我们不需要每次都重新训练大模型,而是应该研究如何自动提取并注入这些语言的“核心规则”,让 AI 瞬间学会任何新语言。

一句话总结
这就好比教一个天才学生学一门刚发明的语言,直接让他死记硬背(直接生成)不行,给他一本厚厚的字典查(RAG)太慢,让他反复试错(Agent)太贵,但如果你给他一张“核心语法速查表”(Syntax-Constrained),他就能立刻成为这门语言的大师!

在收件箱中获取类似论文

根据您的兴趣定制的每日或每周摘要。Gist或技术摘要,使用您的语言。

试用 Digest →