论文

ReCodeAgent:用于与语言无关的大型存储库翻译和验证的多代理工作流程

ReCodeAgent: A Multi-agent Workflow for Language-Agnostic Translation and Validation of Large-Scale Repositories

摘要

由于适应新的 PL 对需要复杂的工程工作,大多数存储库级代码翻译和验证技术都在单个源-目标编程语言 (PL) 对上进行了评估。编程代理可以在存储库级代码转换和验证中实现 PL 不可知论:它们可以跨多个 PL 合成代码,并自主使用特定于每个 PL 分析的现有工具。然而,最先进的技术尚未提供一种用于存储库级代码翻译和大型程序验证的完全自主的代理方法。本文提出了 ReCodeAgent,这是一种用于与语言无关的存储库级代码翻译和验证的自主多代理方法。用户只需提供源PL中的项目并指定目标PL,ReCodeAgent即可自动翻译和验证整个存储库。 ReCodeAgent 是第一个在许多 PL 中实现高翻译成功率的技术。我们将 ReCodeAgent 与四种替代神经符号和代理方法的有效性进行了比较,以翻译 118 个现实世界项目,平均每个项目有 1,975 个 LoC 和 43 个翻译单元。该项目涵盖 6 个 PL 和 4 个 PL 对。我们的结果表明,ReCodeAgent 在翻译正确性方面始终优于现有技术,将 真值 测试的测试通过率提高了 60.8%,平均成本为 15.3 美元。我们还对 ReCodeAgent 轨迹进行以流程为中心的分析,以确认其程序效率。最后,我们研究了设计选择(多代理与单代理架构)如何影响 ReCodeAgent 性能:平均而言,测试通过率下降了 40.4%,轨迹变长了 28%,且效率持续低下。