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

本論文は、データ不足に直面する汎用プログラミング言語「Cangjie」を対象とした汚染のないベンチマーク「CangjieBench」を提案し、大規模言語モデルの性能を多角的に評価することで、低リソース言語への一般化に関する洞察を提供しています。

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 の挑戦:CANGJIEBENCH の解説

この論文は、**「AI が、誰もまだ十分に知らない新しいプログラミング言語を、どうやってマスターできるか?」**という面白い実験について書かれています。

まるで、**「誰も住んだことのない新しい国(言語)に、AI という旅行者を送り込み、地図も辞書もなしに家を建てられるか?」**という冒険物語のようなものです。

以下に、専門用語を排して、わかりやすく解説します。


1. 背景:なぜ「倉颉(そうけつ)」なのか?

まず、**「倉颉(Cangjie)」**というプログラミング言語が登場します。
これは中国の Huawei が開発した、スマホや家電、クラウドまで何でも動かせる「万能言語」です。

  • Python や C++:すでに世界中に何億もの本(データ)があり、AI はこれらを完璧に覚えています。
  • 倉颉:生まれたばかりの言語なので、AI が学習できる「本」がほとんどありません。

【問題】
AI は、本がたくさんある言語なら得意ですが、本がほとんどない言語だと、まともなコードが書けません。
これまでの研究は、「特定の目的だけ使う言語(DSL)」に焦点を当てていましたが、「何でもできる万能言語」でデータが少ない場合の研究は不足していました。

2. 実験の舞台:「CANGJIEBENCH」というテスト

そこで研究者たちは、**「CANGJIEBENCH(倉颉ベンチ)」**というテストを作りました。

  • ** contamination-free(汚染なし)**:
    既存のインターネットからデータを拾うと、AI が「答えを丸暗記」してしまっている可能性があります。それを防ぐため、人間が手作業で、有名なテスト問題(Python の問題)を倉颉に翻訳しました。

    • 例え話:「暗記した答えを写す」のではなく、「新しい言語のルールを初めて見て、ゼロから解く」状態を作ったのです。
  • 248 問のテスト
    簡単な計算問題から、複雑なクラス設計まで、幅広い難易度の問題を準備しました。

3. 4 つの「攻略法」を比較

AI にこの新しい言語を解かせるために、4 つの異なるアプローチを試しました。

① 直接生成(Direct Generation)

  • やり方:「倉颉でこの問題解いて」と言うだけ。辞書もなし。
  • 結果大失敗
    • 例え:「日本語を話せない外国人に、いきなり日本語で料理のレシピを書け」と言うようなもの。文法がバラバラで、コードが動かない(コンパイルエラー)ばかりでした。

② 文法制約付き生成(Syntax-Constrained Generation)

  • やり方:「倉颉の文法ルール(辞書の要約版)」を AI に見せてから解かせます。
  • 結果大成功(コストパフォーマンス最高)
    • 例え:「料理のレシピは日本語でいいけど、**『鍋は火にかけないといけない』『塩は小さじ 1 杯』**という基本的なルールだけ教えてあげたら?」と教える方法。
    • AI は「料理のロジック(何をどうするか)」はすでに知っているので、「文法ルール」さえ教えれば、驚くほど上手に書けることがわかりました。

③ 検索強化生成(RAG)

  • やり方:AI が「倉颉の公式マニュアル」や「過去のコード例」を検索して、それを見ながら解かせます。
  • 結果:少し良くなりましたが、②の「文法ルール」には劣りました。
    • 理由:マニュアルや断片的なコード例だけでは、AI が混乱して、ルールを正しく適用できないことが多かったようです。

④ エージェント(Agent)

  • やり方:AI に「自分でマニュアルを読み、試行錯誤して、間違ったら直す」という自律的な開発者のような役割を与えます。
  • 結果:**最も正確(SOTA)**ですが、非常に高コスト
    • 例え:「料理が作れる人」に「自分で図書館に行って本を読み、試作して、失敗したらまた本を読み直す」ことをさせたら、完璧な料理ができました。
    • しかし、時間とコスト(トークン消費)が膨大にかかりました。

4. 意外な発見:「翻訳」は「ゼロから書く」より難しい?

通常、「Python のコードを倉颉に翻訳する(Code-to-Code)」の方が、「倉颉でゼロから書く(Text-to-Code)」の方が簡単だと思われがちです。

しかし、実験では逆の結果が出ました。

  • 翻訳の方が失敗しやすい
    AI は「Python の書き方」に強く引きずられてしまい、倉颉のルールを無視して Python 風に書いてしまう(これをネガティブ転移と呼びます)。
  • ゼロから書く方が成功しやすい
    逆に、問題文だけを見てゼロから書かせると、AI は「Python の癖」に縛られず、与えられた「倉颉のルール」に従って素直に書けるのです。

5. 結論:何がわかったのか?

この研究から、以下の重要なことがわかりました。

  1. AI は「論理」は持っている:新しい言語でも、ロジック(計算の仕組み)は理解しています。
  2. 必要なのは「文法ルール」:AI が新しい言語をマスターするために必要なのは、大量のデータではなく、**「簡潔で正確な文法ルール」**です。
  3. コストと性能のバランス
    • 一番バランスが良いのは**「文法ルールを教える方法」**。
    • 一番正確だが高コストなのは**「エージェント(自律型 AI)」**。
  4. 翻訳の罠:既存のコードを翻訳する際、元の言語の癖が邪魔をして、かえって失敗しやすくなることがあります。

まとめ

この論文は、**「新しいプログラミング言語が登場したとき、AI をどう育てるか」の指針を示しました。
「莫大なデータで学習させる」のではなく、
「必要なルールだけを教えて、AI に考えさせる」**というアプローチが、低資源言語(データが少ない言語)には最も効果的であることが証明されました。

これは、今後、世界中に次々と生まれる新しい言語や技術に対して、AI をどう適応させるかという未来への重要なヒントとなっています。

このような論文をメールで受け取る

あなたの興味に合わせた毎日または毎週のダイジェスト。Gistまたは技術要約を、あなたの言語で。

Digest を試す →