中文

基于中间表示的 LLM 代码翻译

软件工程 2025-09-18 v2

摘要

研究表明,大型语言模型 (Large language models, LLMs) 生成的代码翻译常常存在错误。通过利用中间表示形式的自然语言 (NL) 摘要和抽象语法树 (ASTs) 可为翻译过程提供结构化指导,从而提高翻译准确性。这一研究探讨了 LLM-based code translation 是否可从中间表示中获益,具体而言是以自然语言摘要和抽象语法树的形式。由于提示工程对 LLM 性能影响显著,本文考虑了将这些表示形式整合到提示中的各种方法,从单次提示到链式思维 (chain-of-thought, CoT) 提示。我们在流行的代码翻译基准测试 (CodeNet 和 AVATAR) 上使用 Open GPT4 8X7B 和专用 StarCoder 和 CodeGen 模型,发现采用中间 NL 摘要的 CoT 方法效果最佳,对于表现最好的模型 (Open GPT4 8X7B) 来说,相对于零样提示,成功翻译率分别提高了 13.8% 和 6.7%。

关键词

引用

@article{arxiv.2507.08627,
  title  = {NL in the Middle: Code Translation with LLMs and Intermediate Representations},
  author = {Chi-en Amy Tai and Pengyu Nie and Lukasz Golab and Alexander Wong},
  journal= {arXiv preprint arXiv:2507.08627},
  year   = {2025}
}