为了加快向内存安全编程语言的迁移步伐,美国国防部高级研究计划局(DARPA)正积极推动一项名为“TRACTOR”的创新项目。TRACTOR,即“TRanslating All C TO Rust”,是一个旨在利用先进的机器学习技术自动将老旧的C代码转换为Rust语言的工具。内存安全问题一直是软件开发中的老大难,比如常见的缓冲区溢出漏洞,这些隐患常常...
“你可以访问任何 LLM 网站,开始与其中一个 AI 聊天机器人聊天,你只需要说‘这是一些 C 代码,请将其转换成安全的 Rust 代码’,然后剪切、粘贴,就会出现一些结果,而且通常效果很好。”DARPA TRACTOR 项目经理 Dan Wallach 博士说。 不过,这是理想状态下的情况,Dan Wallach 表示,“但现实并非总是如此,研究挑战在...
近日,有不少人发现,美国国防高级研究计划局(DARPA)正在启动一项资助计划,即推动一款程序代码转换工具 TRACTOR(全称为 Translating All C to Rust)的开发,旨在借助 AI 大模型技术独立地将传统的 C 和 C++ 代码直接转换为可用的 Rust 代码。 同时,DARPA最终希望这款 AI 工具达到的水平能够与经验丰富的 Rust 程序员...
Immunant 的工程师们首先要做的选择是,是一步一步地进行移植,还是使用 c2rust 移植整个代码库,获得一个不安全但可运行的 Rust 实现,然后再以此为基础进行重构和重写,使其变得安全而又符合 Rust 的语言习惯。最终,他们决定采用 c2rust,因为它有两大优势:一是可以在重构的同时测试移植的代码,二是降低了对...
本文探讨了从C语言迁移到Rust语言时所面临的挑战和从中学到的经验。Immunant公司的工程师们负责将VideoLAN和FFmpeg的AV1解码器从C语言迁移到Rust语言。在迁移过程中,他们使用了c2rust工具来辅助转换,但遇到了C语言和Rust语言之间的不匹配问题以及线程安全问题。通过优化性能,他们最终成功实现了既安全又高效的Rust代码。
因此,他们坚持要移植,而不是使用 Rust 从头开始重写。 Immunant 的工程师们首先要做的选择是,是一步一步地进行移植,还是使用 c2rust 移植整个代码库,获得一个不安全但可运行的 Rust 实现,然后再以此为基础进行重构和重写,使其变得安全而又符合 Rust 的语言习惯。最终,他们决定采用 c2rust,因为它有两大优势:一...
科学家成功将C语言转换为Rust,推动内存安全革命! 在当今这个数字化和信息化飞速发展的时代,内存安全已成为程序开发中首当其冲的关注点。最近,法国国家信息和自动化研究院(Inria)和微软的计算机科学家们联合研发出一种创新的方法,能够自动将C语言代码子集转换为安全的Rust代码。这一突破性进展的背后,正是C语言诞生于...
在使用 C2Rust 将 C 代码转换为 Rust 时,我们遇到了一些边缘情况,在这些情况下,Rust 不能完全复制 C 特性(或者至少不能复制 C 语言的 gcc 变体)。如果我们想让 Rust 成为 C 的应用二进制接口兼容的替代方案,这些都是我们亟需解决的一些问题。 long double 类型 ...
在使用 C2Rust 将 C 代码转换为 Rust 时,我们遇到了一些边缘情况,在这些情况下,Rust 不能完全复制 C 特性(或者至少不能复制 C 语言的 gcc 变体)。如果我们想让 Rust 成为 C 的应用二进制接口兼容的替代方案,这些都是我们亟需解决的一些问题。 long double 类型 ...
相较于使用指针来表达可选情形,Option<T>的表达力会更丰富一些,因为没有强制将T转成T*,保留了移动优化的可能性;同时,使用专门的类型来表达可选,在语义上也理加精确一些。 了解Haskell的同学可以发现,Option与Maybe如出一辙。事实上,Rust的类型系统,很大程度地受到了Haskell的影响,所以很多地方可以看到Haskell的影子...