Anka: A Domain-Specific Language for Reliable LLM Code Generation

📄 arXiv: 2512.23214v1 📥 PDF

作者: Saif Khalfan Saif Al Mazrouei

分类: cs.CL, cs.LG, cs.PL, cs.SE

发布日期: 2025-12-29

备注: 11 pages, 1 figure, 4 tables. Code and benchmarks available at https://github.com/BleBlo/Anka


💡 一句话要点

提出Anka领域特定语言,提升LLM在复杂数据转换任务中的代码生成可靠性。

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 领域特定语言 代码生成 大型语言模型 数据转换 可靠性 上下文学习 语法约束

📋 核心要点

  1. 通用编程语言的灵活性导致LLM在复杂多步骤任务中代码生成易出错,操作排序和变量管理是主要挑战。
  2. 提出Anka,一种具有显式约束语法的领域特定语言,旨在减少代码生成中的歧义,提升LLM代码生成可靠性。
  3. 实验表明,即使未经预训练,LLM也能通过上下文学习掌握Anka,并在复杂任务中超越通用语言Python。

📝 摘要(中文)

大型语言模型(LLMs)在代码生成方面表现出卓越的能力,但在复杂的多步骤编程任务中存在系统性错误。我们假设这些错误源于通用语言的灵活性,它允许多种有效方法并需要隐式状态管理。为了验证这一假设,我们引入了Anka,一种用于数据转换管道的领域特定语言(DSL),它具有显式、受约束的语法,从而减少了代码生成中的歧义。尽管之前没有接受过Anka的训练,Claude 3.5 Haiku在100个基准问题中实现了99.9%的解析成功率和95.8%的总体任务准确率。关键的是,Anka在多步骤管道任务上比Python具有40个百分点的准确率优势(100% vs. 60%),其中Python的灵活语法导致操作排序和变量管理中频繁出错。使用GPT-4o-mini进行的交叉模型验证证实了这一优势(在多步骤任务上+26.7个百分点)。我们的结果表明:(1)LLM可以完全从上下文提示中学习新的DSL,从而达到接近原生语言的准确率;(2)受约束的语法显著减少了复杂任务中的错误;(3)专门为LLM生成而设计的领域特定语言可以胜过LLM接受过广泛训练的通用语言。我们发布完整的语言实现、基准测试套件和评估框架,以促进进一步的研究。

🔬 方法详解

问题定义:论文旨在解决大型语言模型(LLMs)在执行复杂、多步骤数据转换任务时,由于通用编程语言的灵活性而产生的代码生成错误问题。现有方法,即直接使用通用语言(如Python),容易出现操作排序错误和变量管理问题,导致任务完成准确率下降。

核心思路:论文的核心思路是设计一种领域特定语言(DSL),Anka,该语言具有显式且受约束的语法,从而减少代码生成过程中的歧义。通过限制语言的表达方式,迫使LLM采用更明确和可预测的代码结构,降低出错概率。

技术框架:Anka语言的设计围绕数据转换管道展开,其语法明确定义了数据流和操作顺序。整个框架包括Anka语言的定义、编译器/解释器(用于解析和执行Anka代码,但论文重点在于LLM生成Anka代码)、基准测试套件(包含一系列数据转换任务)以及评估框架(用于评估LLM生成的Anka代码的正确性)。LLM接收任务描述,生成Anka代码,然后通过Anka的执行环境进行验证。

关键创新:最重要的技术创新在于领域特定语言Anka的设计理念,即通过约束语法来提升LLM代码生成的可靠性。与现有方法(直接使用通用语言)相比,Anka通过减少歧义和强制明确的状态管理,显著降低了LLM在复杂任务中出错的可能性。

关键设计:Anka的关键设计包括:(1) 显式的数据流定义,确保操作顺序的正确性;(2) 受约束的变量管理,避免变量命名冲突和作用域问题;(3) 针对数据转换任务优化的操作符集合,简化代码编写过程。论文未提供关于损失函数或网络结构的细节,因为重点在于语言设计和LLM的上下文学习能力。

🖼️ 关键图片

fig_0

📊 实验亮点

Claude 3.5 Haiku在Anka基准测试中取得了99.9%的解析成功率和95.8%的总体任务准确率。在多步骤管道任务上,Anka比Python的准确率高出40个百分点(100% vs. 60%)。GPT-4o-mini的交叉模型验证也证实了Anka的优势,在多步骤任务上提升了26.7个百分点。

🎯 应用场景

该研究成果可应用于自动化数据处理流程、低代码/无代码平台、以及需要高可靠性代码生成的领域。通过设计针对特定任务的DSL,可以降低开发门槛,提高代码质量,并加速软件开发过程。未来,该方法可扩展到其他领域,例如机器人控制、金融建模等。

📄 摘要(原文)

Large Language Models (LLMs) have demonstrated remarkable capabilities in code generation, yet they exhibit systematic errors on complex, multi-step programming tasks. We hypothesize that these errors stem from the flexibility of general-purpose languages, which permits multiple valid approaches and requires implicit state management. To test this hypothesis, we introduce Anka, a domain-specific language (DSL) for data transformation pipelines designed with explicit, constrained syntax that reduces ambiguity in code generation. Despite having zero prior training exposure to Anka, Claude 3.5 Haiku achieves 99.9% parse success and 95.8% overall task accuracy across 100 benchmark problems. Critically, Anka demonstrates a 40 percentage point accuracy advantage over Python on multi-step pipeline tasks (100% vs. 60%), where Python's flexible syntax leads to frequent errors in operation sequencing and variable management. Cross-model validation with GPT-4o-mini confirms this advantage (+26.7 percentage points on multi-step tasks). Our results demonstrate that: (1) LLMs can learn novel DSLs entirely from in-context prompts, achieving near-native accuracy; (2) constrained syntax significantly reduces errors on complex tasks; and (3) domain-specific languages purposefully designed for LLM generation can outperform general-purpose languages on which the LLM has extensive training. We release the complete language implementation, benchmark suite, and evaluation framework to facilitate further research.