论文
代码翻译技术的大规模实证比较
An Extensive Empirical Study on Code Translation Technique
摘要
自动代码翻译对于软件的发展越来越重要,但基于学习和基于 大语言模型 (LLM) 的技术的相对优势和局限性仍然没有得到充分理解。为了解决这一差距,我们进行了大规模的实证研究,比较了跨方法范式和翻译粒度的代表性代码翻译技术。我们在涉及多种编程语言的多语言方法级和类级基准上评估基于学习的方法、基于 LLM 的方法和通用 LLM。我们的分析考虑了可执行正确性、代码相似性、翻译方向、翻译粒度和故障模式。结果表明,基于 LLM 和 LLM 的方法在方法级正确性方面通常优于基于学习的方法,尽管相似性度量本身并不能可靠地反映功能正确性。翻译方向极大地影响性能,特别是在具有不同类型系统特征的语言之间进行翻译时。类级翻译仍然比方法级翻译困难得多,因为它需要保留全局语义、接口、成员关系和跨方法依赖关系。我们的错误分析进一步表明,静态语义错误和逻辑错误是现有代码翻译系统的主要挑战。这些发现为开发更强大的、类型感知、结构感知和上下文感知的代码翻译技术提供了经验证据和实践指导。