论文信息
原标题
Algorithm-Based Pipeline for Reliable and Intent-Preserving Code Translation with LLMs
主要作者及研究机构
Shahriar Rumi Dipto、Saikat Mondal、Chanchal K. Roy,均来自加拿大萨斯喀彻温大学(University of Saskatchewan, Canada)
APA 引文格式
Dipto, S. R., Mondal, S., & Roy, C. K. (2026). Algorithm-based pipeline for reliable and intent-preserving code translation with LLMs. In Proceedings of the 34th IEEE/ACM International Conference on Program Comprehension (ICPC '26). ACM.
其他关键信息
arXiv 版本:arXiv:2602.16106v1 [cs.SE],发布时间 2026 年 2 月 18 日
一段话总结
这篇发表于 ICPC '26 的论文针对大语言模型(LLMs)直接进行代码翻译时易丢失程序意图、引发编译/运行时错误、功能一致性差的核心问题,提出了一种基于算法的代码翻译流水线,核心是在生成目标代码前先提取与语言无关的中间算法规范,精准捕捉程序的 I/O 合约、数据结构、数值规则等关键细节;研究在 Avatar 和 CodeNet 数据集上,利用 5 款主流 LLMs(DeepSeek R1/V3、Llama 4 Maverick、GPT-4o、Qwen2.5)开展 Python 与 Java 的双向翻译自动化配对实验,对比直接翻译与算法基方法的效果,结果显示该流水线将代码翻译的微平均准确率从 67.7% 提升至 78.5%,100% 消除词汇/令牌错误,大幅降低各类编译和运行时错误;同时研究构建了统一的语言感知错误分类法,分析了错误分布特征与算法基方法的错误缓解场景,证实该方法能实现更可靠、保意图的代码翻译,为多语言编程助手奠定了基础,也为 LLM 代码翻译的研究和工程实践提供了全新范式。
研究背景
在当下的软件工程领域,自动化代码翻译已经成为大语言模型(LLMs)最实用的应用场景之一。开发者们经常需要把 Python 代码转成 Java 做企业级开发,或是把 Java 遗留代码转成 Python 做快速迭代,LLMs 本应成为这个过程的'高效翻译官',但实际使用中却频频'掉链子'。
举个很常见的例子:把一段 Java 的输入处理代码直接转成 Python 时,LLM 可能会错误地将 Java 的逐行输入解析成 Python 的单行输入,导致生成的代码出现数组索引越界错误——代码看似语法正确,却完全违背了原程序的意图,这种'意图丢失'的问题在直接翻译中比比皆是。
行业研究显示,高达 77.8% 的 LLM 直接翻译代码无法正常编译,或运行后输出错误结果,常见问题包括:数据类型处理错误、控制流逻辑偏差、I/O 行为不符、循环边界判断失误等。这些问题不仅让开发者需要花费大量时间调试,还会引入隐藏的程序缺陷,严重降低了大家对 LLM 代码翻译的信任。
之所以会出现这些问题,核心原因是:LLMs 在直接翻译时,更擅长模仿代码的表面语法模式,却容易忽略程序底层的算法意图——比如它能保留循环的结构,却可能搞错数值解析规则;能复制变量名,却可能弄混输入的读取方式。
而现有的代码翻译方法,也都没能从根本上解决这个问题,主要分为三类且各有缺陷:
- 规则基转译器:人工编写语言配对的转换规则,灵活性极差,面对不断更新的语言特性和编程风格,维护成本极高,生成的代码也往往不符合目标语言的惯用写法;
- 神经模型:基于海量代码语料训练,虽比规则基方法灵活,但仍缺乏对程序细微语义的对齐,容易遗漏边界场景,误用运算符和数据类型;
- LLM 中心流水线:主流的做法是'先翻译,后修复',比如利用编译器错误信息重译、生成测试用例验证后修改,却没有在翻译开始前就明确并强化原程序的算法意图。
这就像我们把一篇中文技术文档直接用翻译软件转成英文,软件能保证单词和语法大致正确,却可能因为不懂技术逻辑,把'循环边界'翻译成'循环边界线',导致文档失去核心含义。而自然语言翻译中,处理差异大的语言对时,会用枢轴语言(比如中→英→德)做中转,保证翻译的准确性。受此启发,研究人员思考:能不能在代码翻译中,加入一个与语言无关的'算法枢轴',先把原程序的核心意图提取出来,再基于这个意图生成目标代码?这就是这篇论文的研究起点。
创新点
这篇论文的核心价值在于打破了 LLM 代码翻译'直接映射'的传统思路,提出了全新的解决框架,其独特创新点主要有 4 个:
1. 提出两步式算法基翻译流水线,首次在推理阶段实现'意图先行,代码后生成'
区别于传统的单步直接翻译,该方法先让 LLM 提取原程序的语言无关算法规范,精准捕捉 I/O 处理、数据结构、数值规则、循环边界、输出格式等核心意图,再基于这个规范生成目标代码,从源头避免了意图丢失,而非事后修复错误。


