为了加快向内存安全编程语言的迁移步伐,美国国防部高级研究计划局(DARPA)正积极推动一项名为“TRACTOR”的创新项目。TRACTOR,即“TRanslating All C TO Rust”,是一个旨在利用先进的机器学习技术自动将老旧的C代码转换为Rust语言的工具。内存安全问题一直是软件开发中的老大难,比如常见的缓冲区溢出漏洞,这些隐患常常...
我们已经能够将大多数 C 代码转换为与语言交互接口兼容的、等价的 Rust:lua、NGINX 和 zstd 在无需任何更改的情况下进行了 transpile,而 ioq3 只需在 Rust 输出中进行一个小的更改即可运行(上面所示的ssemask问题)。我们希望,随着 Rust 的成熟,我们可以解决这些阻碍 C 和 Rust 之间的完全兼容的边缘情况。 作者...
时下,始于大型语言模型 (LLM) 等机器学习技术的最新突破,DARPA 表示这创造了一种新解决方案的环境,即“通过大规模自动化,将世界上高度脆弱的遗留 C 代码自动转换成本质上更安全的 Rust 编程语言。” “你可以访问任何 LLM 网站,开始与其中一个 AI 聊天机器人聊天,你只需要说‘这是一些 C 代码,请将其转换成...
TRACTOR 是 TRanslating All C TO Rust 的缩写,该项目旨在开发机器学习工具,自动将旧 C 代码转换为 Rust 代码。 DARPA 表示希望能够通过 AI 模型推动编程语言的转换,从而使软件更加安全。 TRACTOR 的 DARPA 项目经理 Dan Wallach 在一份声明中表示: “你可以访问任何一个 LLM 网站,开始与其中一个 AI 聊天机器人...
01美国国防高级研究计划局(DARPA)推出编程代码转换工具TRACTOR,旨在将C代码自动转换为Rust,以提高软件安全性。 02TRACTOR项目面临挑战,如C/C++程序结构差异较大,以及C语言允许使用指针而Rust禁止。 03然而,DARPA希望通过AI模型帮助编程语言翻译,实现熟练开发人员手动编写Rust代码的高质量和风格。
最近,法国国家信息和自动化研究院(Inria)和微软的计算机科学家们联合研发出一种创新的方法,能够自动将C语言代码子集转换为安全的Rust代码。这一突破性进展的背后,正是C语言诞生于20世纪70年代的现实窘境。作为众多重要系统和应用程序的构建基石(比如Linux内核),C语言虽具备高效灵活的手动内存管理,却其内存安全问题却让...
C2Rust工具作为一种先进的代码转换技术,它不仅能够将现有的C语言模块高效地转化为Rust语言,而且还保证了转换前后代码语义的一致性。通过兼容C99标准,C2Rust确保了广泛的应用范围,适用于大多数现代C代码库。此外,在转换过程中,C2Rust借助于Clang工具对原始C代码进行深入分析和类型检查,进一步提高了转换结果的准确性和安全...
最近,法国国家信息和自动化研究院(Inria)与微软的计算机科学家们合作,开发出一种方法,可以自动将C语言代码转化为安全的Rust代码。C语言自20世纪70年代问世以来,一直用于构建各种关键系统和应用程序,但由于其手动内存管理特性,极易导致内存错误。这一新的自动转换方法不仅响应了对提高内存安全性的迫切需求,也为C语言...
据 TRACTOR 的项目经理 Dan Wallach 介绍,人工智能聊天机器人已经可以将"一些 C 代码"快速转换为安全的 Rust 代码。不过,生成的代码并非完全没有错误(或幻觉)。TRACTOR 的目标是"大幅提高"LLM 自动将 C 代码转换为 Rust 代码的能力。公共部门有相当一部分软件项目是用传统语言开发的,DARPA 也非常清楚这个问题...
代码解析:C2Rust首先解析C语言源代码,生成抽象语法树(AST)。 代码转换:根据预定义的转换规则,将C语言的AST转换为Rust语言的AST。 代码生成:将转换后的Rust AST生成可读的Rust代码。 代码优化:对生成的Rust代码进行优化,包括性能优化和代码结构调整。 在实际应用中,C2Rust工具大大减少了手动转换的工作量,提高了迁移...