five

TRANSREPO-BENCH

收藏
arXiv2025-01-27 更新2025-02-25 收录
下载链接:
http://arxiv.org/abs/2501.16050v1
下载链接
链接失效反馈
官方服务:
资源简介:
TRANSREPO-BENCH是一个用于代码库翻译的高质量开源基准测试,专注于Java到C#的翻译。该数据集由13个任务组成,每个任务包含源Java代码库、目标C#代码库骨架、单元测试和测试环境。数据集通过提取和翻译代码库的骨架结构,确保翻译的一致性和可维护性。TRANSREPO-BENCH旨在解决代码库翻译中的跨文件依赖和模块交互问题,提供细粒度的质量评估,帮助研究人员在实际场景中评估模型性能。

TRANSREPO-BENCH is a high-quality open-source benchmark for codebase translation, focusing on Java-to-C# translation. This dataset comprises 13 tasks, each containing the source Java codebase, the skeleton of the target C# codebase, unit tests, and test environments. The dataset ensures translation consistency and maintainability by extracting and translating the skeleton structures of codebases. TRANSREPO-BENCH aims to address cross-file dependencies and module interaction issues in codebase translation, and provides fine-grained quality evaluation to help researchers assess model performance in real-world scenarios.
提供机构:
微软、北京大学、浙江大学、同济大学
创建时间:
2025-01-27
搜集汇总
数据集介绍
main_image_url
构建方式
TRANSREPO-BENCH 数据集的构建采用了骨架引导翻译的框架,首先将 Java 代码库的结构骨架进行翻译,然后以此骨架为指导进行完整代码库的翻译。数据集包括高质量的开放源代码 Java 代码库及其对应的 C# 骨架,并包含匹配的单元测试和构建配置文件。单元测试经过固定化,可以在多次或增量翻译中重复使用,无需手动调整,从而提高了评估的自动化和可扩展性。
特点
TRANSREPO-BENCH 数据集的特点在于其骨架引导的翻译框架和细粒度的质量评估。该框架通过两步翻译过程,先翻译代码库的结构骨架,再以此为基础进行完整翻译,确保了结构的一致性,并解决了跨文件依赖和模块交互等挑战。此外,数据集还包含细粒度的评估指标,可以评估每个测试用例的翻译质量,克服了传统二元指标无法区分构建失败导致所有测试失败的缺陷。
使用方法
使用 TRANSREPO-BENCH 数据集进行代码库翻译评估时,首先需要准备好源代码库和目标代码库骨架,以及对应的单元测试和测试环境。通过执行单元测试,评估翻译后的代码库的质量。数据集提供的工具和脚本可以协助研究人员和开发人员更高效地进行代码库翻译和评估工作。
背景与挑战
背景概述
在软件工程领域,随着大型语言模型(LLMs)的进步,企业对于现代化应用程序和将遗留系统迁移到安全、多功能的语言的需求日益增长。现有的代码翻译基准主要集中在单个函数上,而忽略了翻译整个存储库的复杂性,例如维护模块间的一致性和管理依赖关系。尽管一些最新的存储库级别的翻译基准试图解决这些挑战,但它们仍然面临局限性,包括可维护性差和评估粒度过粗,这使得它们对开发人员不太友好。为了解决这些问题,Xing Zhang等人提出了Skeleton-Guided-Translation框架,该框架以细粒度的质量评估为目标,用于存储库级别的Java到C#代码翻译。该框架采用两步过程:首先翻译存储库的结构“骨架”,然后在这些骨架的指导下翻译整个存储库。基于此,他们提出了TRANSREPO-BENCH,这是一个高质量的开放源码Java存储库及其相应C#骨架的基准,包括匹配的单元测试和构建配置。TRANSREPO-BENCH通过在多个或增量翻译中应用固定且无需手动调整的单元测试,增强了评估的自动化和可扩展性。此外,该基准还开发了细粒度的评估指标,以评估单个测试用例级别的翻译质量,解决了传统二元指标无法区分构建失败导致所有测试失败的问题。
当前挑战
TRANSREPO-BENCH在构建过程中面临了几个挑战。首先,缺乏一个系统性的框架来处理整个存储库的翻译,这限制了可维护性,因为即使是小的更新也可能需要重新翻译大部分代码。其次,缺乏库级别的平行语料库,这使得通过自动测试来确保正确性变得困难。此外,现有的评估指标通常无法捕捉到微妙的翻译结果,导致开发人员的可用性较低。为了解决这些挑战,Skeleton-Guided-Translation框架通过提取和翻译存储库骨架来确保一致性和细粒度的评估。TRANSREPO-BENCH通过利用骨架翻译框架来克服现有基准的局限性,使精确评估成为可能。该基准提供了一个高质量的开源存储库基准,包括Java库及其在C#中的对应骨架,以及用于评估的单元测试和测试配置文件。TRANSREPO-BENCH通过在单元测试级别对翻译质量进行评分,提供了比二元指标更有意义的反馈。
常用场景
经典使用场景
TRANSREPO-BENCH 是一个针对代码仓库级 Java 到 C# 代码翻译的基准测试框架,其经典使用场景包括在软件开发过程中,将遗留的 Java 代码库迁移到 C# 以提高安全性或兼容性。该数据集通过提供结构化的代码骨架和匹配的单元测试,帮助开发者在迁移过程中保持代码库的完整性和依赖关系,同时通过细粒度的质量评估提供详细的翻译质量反馈。
实际应用
在实际应用中,TRANSREPO-BENCH 可用于评估和比较不同代码翻译模型和工具的性能,帮助开发者选择最合适的翻译解决方案。此外,该数据集的细粒度评估指标可以帮助开发者快速定位翻译错误,从而提高翻译质量和开发效率。TRANSREPO-BENCH 还可用于研究代码翻译中的错误模式和挑战,以改进翻译模型和工具的设计。
衍生相关工作
TRANSREPO-BENCH 衍生了许多相关的研究工作,包括针对不同编程语言对的代码翻译基准测试,以及基于骨架引导翻译的代码翻译框架。这些相关工作进一步扩展了 TRANSREPO-BENCH 的应用范围,并推动了代码翻译领域的发展。此外,TRANSREPO-BENCH 的评估方法也被用于其他软件工程领域,如代码修复和代码生成,以提供更细粒度的评估和反馈。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作