神经代码翻译中无测试的语义错误定位框架
软件工程
2024-10-31 v1
摘要
在代码翻译任务中,基于神经网络的模型已被证明会频繁生成偏离源代码原始逻辑的语义错误代码。即使在先进的大模型中,这一问题依然存在。尽管最近有研究提出使用测试用例来识别这些语义错误,但该方法严重依赖测试用例的质量,并且不适用于现实场景中缺乏测试用例的代码片段。因此,我们提出了EISP,一个基于大语言模型(LLM)的静态分析框架。首先,该框架生成源代码与翻译代码之间的语义映射。接下来,通过递归遍历源代码的抽象语法树来识别每个子代码片段,并通过语义映射找到其对应的翻译代码片段。最后,EISP通过AI链将每对子代码片段与细粒度的知识提示相连接,以辅助大语言模型发现翻译代码中的语义错误。在我们的基准评估中,基于GPT-4o mini的EISP框架实现了82.3%的准确率,相比使用相同基础模型的基线方法提升了20.3%,相比需要测试用例和人工干预的动态分析方法提升了7.4%。据我们所知,EISP是首个无需测试用例或可编译代码即可定位翻译代码中语义错误的工具。这一创新工具为软件工程社区提供了一种处理无测试用例代码片段的新方法。
引用
@article{arxiv.2410.22818,
title = {A test-free semantic mistakes localization framework in Neural Code Translation},
author = {Lei Chen and Sai Zhang and Fangzhou Xu and Zhenchang Xing and Liang Wan and Xiaowang Zhang and Zhiyong Feng},
journal= {arXiv preprint arXiv:2410.22818},
year = {2024}
}