five

CRUST-Bench

收藏
arXiv2025-04-22 更新2025-04-23 收录
下载链接:
https://github.com/anirudhkhatry/CRUST-bench
下载链接
链接失效反馈
官方服务:
资源简介:
CRUST-Bench是一个包含100个C语言仓库的数据集,每个仓库都配有人类编写的安全Rust接口和测试用例,用于验证C到安全Rust转译的正确性。该数据集通过考虑整个仓库而不仅仅是孤立函数,捕捉了跨多个文件依赖的复杂项目翻译的挑战。提供的Rust接口为显式规范,确保遵循惯用的、内存安全的Rust模式,而伴随的测试用例则强制执行功能性正确性。

CRUST-Bench is a dataset comprising 100 C language repositories. Each repository includes human-written safe Rust interfaces and test cases, which are used to verify the correctness of C-to-safe Rust transpilation. By taking entire repositories into account rather than only isolated functions, this dataset captures the challenges of translating complex projects with cross-file dependencies. The provided Rust interfaces are explicit specifications designed to ensure adherence to idiomatic, memory-safe Rust patterns, while the accompanying test cases enforce functional correctness.
提供机构:
德克萨斯大学奥斯汀分校
创建时间:
2025-04-22
搜集汇总
数据集介绍
main_image_url
构建方式
CRUST-Bench的构建采用了混合标注流程,结合自动化工具与人工专家知识。研究团队从GitHub开源项目中筛选出100个C语言仓库,确保其满足编译要求并具备一定复杂度。标注人员手动为每个C项目编写符合Rust安全规范的手工接口定义和测试用例,随后通过Rust编译器进行类型检查验证。整个流程包括C类型转换、函数签名标注、测试用例适配等关键步骤,平均每个项目耗时1.5小时进行人工标注,并由第一作者进行质量复核。
特点
该数据集的核心特征体现在三个方面:首先,采用完整代码仓库而非孤立函数作为评估单元,真实模拟多文件依赖的复杂迁移场景;其次,提供严格遵循Rust安全规范的接口定义,包含3,085个接口函数和299个接口文件,其中56%函数使用引用参数,30%涉及可变引用;最后,配套的测试用例系统覆盖67%的代码逻辑,形成编译时类型检查与运行时功能验证的双重保障机制。这种设计使CRUST-Bench成为首个能全面评估C到安全Rust转换的基准测试。
使用方法
使用CRUST-Bench需遵循三层验证框架:开发者首先需确保生成的Rust代码完全符合预设接口规范(I),包括类型注解和所有权语义;其次通过Rust编译器验证代码能否通过静态类型检查;最后运行配套测试集(T)验证功能正确性。研究建议采用迭代修复策略,先根据编译器错误信息进行语法修正,再结合测试失败反馈优化语义逻辑。数据集支持对LLM生成代码的安全性和习惯用法进行量化评估,特别适合研究跨语言转换中的类型系统迁移和内存安全保证等核心问题。
背景与挑战
背景概述
CRUST-Bench是由德克萨斯大学奥斯汀分校和纽约大学的研究团队于2025年提出的一个综合性基准测试数据集,专注于评估C语言到安全Rust(safe Rust)的转译能力。该数据集包含100个C语言仓库,每个仓库都配有手动编写的安全Rust接口和测试用例,旨在验证转译的正确性和安全性。CRUST-Bench的创建填补了现有数据集的空白,特别是在处理多文件依赖和复杂项目结构方面,为现代软件迁移和安全性提升提供了重要工具。其影响力不仅体现在推动自动化代码迁移技术的发展,还为研究Rust内存安全机制提供了实际应用场景。
当前挑战
CRUST-Bench面临的挑战主要包括两个方面:领域问题的挑战和构建过程的挑战。在领域问题方面,C到安全Rust的转译不仅要求功能等价性,还需确保生成的Rust代码符合内存安全和惯用法要求,这对自动化工具提出了极高要求。构建过程中的挑战则体现在多文件依赖的处理、复杂指针操作的转换以及手动编写高质量Rust接口和测试用例的工作量上。此外,现有的大型语言模型在单次尝试中仅能解决约15%的任务,显示出该领域仍存在巨大技术瓶颈。
常用场景
经典使用场景
在软件现代化进程中,CRUST-Bench数据集为C到安全Rust的转译任务提供了标准化评估框架。该数据集通过整合100个真实C代码仓库及其对应的安全Rust接口与测试用例,支持研究者验证转译系统在保持功能正确性的同时,能否生成符合Rust内存安全规范及语言习惯的代码。尤其在处理跨文件依赖、指针操作转换等复杂场景时,该数据集能有效模拟工业级代码迁移的挑战。
衍生相关工作
该数据集已催生多项前沿研究:VERT项目结合属性测试验证语义等价性,C2SaferRust探索了神经符号技术增强转译安全性,SYZYGY则利用动态分析优化双重代码测试。这些工作均以CRUST-Bench作为核心评估基准,推动了转译技术从语法转换到语义保持的范式演进。
数据集最近研究
最新研究方向
随着Rust语言在系统编程领域的快速崛起,C到Rust的转译技术成为软件现代化改造的关键研究方向。CRUST-Bench作为首个专注于评估C到安全Rust转译的综合性基准数据集,其最新研究聚焦于多文件复杂项目的转译挑战,通过提供手工标注的安全Rust接口和测试用例,为评估转译系统的功能正确性和内存安全性建立了严格标准。当前前沿研究主要探索大型语言模型在跨语言转译中的表现,特别是如何克服指针操作向Rust所有权模型转换的语义鸿沟。该数据集的出现恰逢业界大规模C代码库现代化改造的需求激增,如Linux内核逐步引入Rust模块的热点事件,使得其在推动安全编程范式转型、降低内存安全漏洞风险方面具有重要实践意义。
相关研究论文
  • 1
    CRUST-Bench: A Comprehensive Benchmark for C-to-safe-Rust Transpilation德克萨斯大学奥斯汀分校 · 2025年
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作