RustRepoTrans
收藏github2024-11-21 更新2024-11-28 收录
下载链接:
https://github.com/TrustedGPT/RustRepoTrans
下载链接
链接失效反馈官方服务:
资源简介:
RustRepoTrans 是第一个针对 Rust 的仓库级代码翻译基准数据集,包含 375 个任务,涵盖 122 个 Java-Rust 函数对、145 个 C-Rust 函数对和 108 个 Python-Rust 函数对,以及相关的依赖项和测试用例,平均覆盖率超过 90%。
RustRepoTrans is the first repository-level code translation benchmark dataset for Rust. It contains 375 tasks, covering 122 Java-Rust function pairs, 145 C-Rust function pairs, 108 Python-Rust function pairs, along with relevant dependencies and test cases, with an average coverage rate exceeding 90%.
创建时间:
2024-11-21
原始信息汇总
RustRepoTrans 数据集概述
数据集简介
RustRepoTrans 是一个针对 Rust 的仓库级代码翻译基准数据集,包含 375 个任务,涵盖 122 个 Java-Rust 函数对、145 个 C-Rust 函数对和 108 个 Python-Rust 函数对。每个任务包含相关的依赖项和测试用例,平均覆盖率超过 90%。
数据集格式
每个代码翻译任务包含以下部分:
- 源函数
- 目标函数
- 目标函数依赖项
- 目标函数测试用例
任务格式为 <源函数, 目标函数, 目标函数依赖项, 目标函数测试用例>。源函数和目标函数代表源语言和目标语言中功能等价的代码片段,目标函数依赖项包括函数依赖、数据类型依赖、变量依赖和库依赖。
数据集结构
- 函数对位于
Evaluate/function_pair_with_identical_functionality文件夹中。 - 依赖项位于
Evaluate/related_functions_and_datatypes_and_import文件夹中。 - 测试用例位于原始项目中。
使用方法
环境设置
- 确保使用 Python 3.8 或更高版本。
- 安装 Rust 编程语言。
评估步骤
- 替换
Evaluate/generation.py中的目标 LLM。 - 运行脚本进行评估。
数据集构建
- 替换
Dataset_Construction/generation.py中的目标 LLM。 - 替换
Dataset_Construction/projects中的目标项目。 - 运行脚本进行数据集构建。
结果
- 翻译结果和测试结果位于
results/rq1。 - 错误原因分析位于
results/rq4。 - LLMs 的噪声鲁棒性和语法差异识别能力分析位于
results/rq5。
搜集汇总
数据集介绍

构建方式
RustRepoTrans数据集的构建方式独具匠心,通过精心挑选和配对122对Java-Rust、145对C-Rust以及108对Python-Rust的函数对,确保了数据集的广泛性和代表性。每对函数不仅包含源代码和目标代码,还附带了相关的依赖项和测试用例,平均覆盖率超过90%。这种构建方式不仅确保了数据集的完整性,还为评估大型语言模型在代码翻译任务中的表现提供了坚实的基础。
使用方法
使用RustRepoTrans数据集进行评估时,首先需确保环境配置符合要求,包括Python 3.8及以上版本和Rust的安装。随后,通过替换Evaluate/generation.py中的目标LLM,并运行相应的脚本,可以对代码翻译任务进行评估。具体操作包括指定函数对文件夹路径、目标LLM名称以及依赖项文件夹路径,通过运行run.sh脚本即可启动评估过程。这种使用方法确保了评估的灵活性和可重复性。
背景与挑战
背景概述
RustRepoTrans数据集是首个针对Rust语言的仓库级代码翻译基准,由相关领域的研究人员于近年创建。该数据集的核心研究问题在于评估大型语言模型在仓库级代码翻译任务中的表现,特别是在从Java、C和Python到Rust的代码转换过程中。RustRepoTrans包含了375个翻译任务,涵盖122对Java-Rust、145对C-Rust和108对Python-Rust的函数对,每个任务均附带相关依赖和测试用例,平均覆盖率超过90%。这一数据集的推出,极大地推动了代码翻译领域的发展,为研究人员提供了一个标准化的评估平台,有助于提升代码翻译模型的准确性和鲁棒性。
当前挑战
RustRepoTrans数据集在构建和应用过程中面临多项挑战。首先,确保源代码与目标代码的功能等价性是一个复杂的问题,涉及多种编程语言的语法和语义差异。其次,依赖管理和测试用例的生成与验证也是一大难题,要求数据集能够准确反映实际项目中的依赖关系和测试需求。此外,数据集的扩展性和更新维护也是一个持续的挑战,需要不断纳入新的代码对和测试用例,以适应语言和技术的快速发展。最后,评估大型语言模型在代码翻译任务中的表现时,如何量化和分析模型的错误原因及其对噪声和语法差异的鲁棒性,也是研究者需要深入探讨的问题。
常用场景
经典使用场景
RustRepoTrans数据集的经典使用场景主要集中在大型语言模型(LLMs)在代码翻译任务中的评估。该数据集通过提供122个Java-Rust、145个C-Rust和108个Python-Rust的功能对,以及相关的依赖和测试用例,为研究人员提供了一个全面的基准。这些功能对不仅包括源代码和目标代码,还涵盖了目标函数的依赖项和测试用例,确保了翻译结果的准确性和完整性。通过这种结构,研究人员可以系统地评估LLMs在不同编程语言之间进行代码翻译的能力。
解决学术问题
RustRepoTrans数据集解决了在代码翻译领域中长期存在的学术研究问题,即如何有效地评估和提升大型语言模型在跨语言代码翻译中的表现。该数据集通过提供详尽的功能对、依赖项和测试用例,为研究人员提供了一个标准化的评估框架。这不仅有助于量化LLMs在代码翻译任务中的性能,还为改进和优化这些模型提供了宝贵的数据支持。此外,该数据集还促进了跨语言编程的研究,推动了不同编程语言之间的互操作性。
实际应用
在实际应用中,RustRepoTrans数据集为软件开发和维护提供了重要的工具。通过该数据集,开发人员可以评估和选择最适合其需求的代码翻译工具,从而提高代码的可移植性和复用性。此外,该数据集还支持自动化的代码迁移和重构,减少了手动转换代码所需的时间和成本。在跨平台开发和多语言项目中,RustRepoTrans的应用尤为显著,它帮助开发者更高效地处理不同编程语言之间的转换问题。
数据集最近研究
最新研究方向
在软件工程领域,RustRepoTrans数据集的引入标志着代码翻译研究迈向了一个新的高度。该数据集专注于仓库级别的代码翻译,特别是从Java、C和Python到Rust的转换,为大型语言模型(LLMs)在代码生成和转换中的应用提供了丰富的测试基准。当前的研究主要集中在利用LLMs生成高质量的Rust代码,并通过包含的测试用例验证其正确性。此外,研究者们也在探索如何提高模型对代码依赖性和语法差异的识别能力,以增强其在实际项目中的应用效果。这一方向的研究不仅有助于提升代码翻译的准确性和效率,还为跨语言编程工具的开发提供了重要的理论支持。
以上内容由遇见数据集搜集并总结生成



