为了加快向内存安全编程语言的迁移步伐,美国国防部高级研究计划局(DARPA)正积极推动一项名为“TRACTOR”的创新项目。TRACTOR,即“TRanslating All C TO Rust”,是一个旨在利用先进的机器学习技术自动将老旧的C代码转换为Rust语言的工具。内存安全问题一直是软件开发中的老大难,比如常见
我们已经对此进行了尝试,例如我们最近将基于 C 语言的 AV1 实现转换为 Rust。虽然目前的工具还需要不少手动调整才能让结果正确并符合惯用法,但我们相信,通过进一步投资,这些工具将会变得更加高效。”
内存管理:C语言通过手动调用malloc和free管理内存,而Rust通过其独特的所有权系统和借用检查器自动管理内存,避免内存泄漏和野指针。 类型系统:Rust拥有更严格和现代的类型系统,支持枚举、模式匹配和trait,而C的类型系统较为简单。 错误处理:C通常通过返回值或全局变量处理错误,而Rust使用Result和Option类型来优雅地处理异常...
通过使用KaRaMeL编译器框架实现 Mini-C ,科学家们表示他们的方法可以生成安全的 Rust 代码,但需要注意的是可能需要进行一些重构。 他们解释说:“我们不会将 C 语言的全部通用性自动转换为不安全的 Rust 语言,并试图使生成的代码更安全,而是以面向数据的 C 语言应用子集为目标。因此,我们的翻译过程是半主动的:用户...
TRACTOR 计划源于最近的两个文化转变:Rust 编程语言的广泛采用和先进机器学习技术的发展。DARPA 对聊天机器人和其他人工智能服务使用的大型语言模型特别感兴趣,因为它们可以为内存安全问题提供新的解决方案。据 TRACTOR 的项目经理 Dan Wallach 介绍,人工智能聊天机器人已经可以将"一些 C 代码"快速转换为安全的 Rust ...
本文尝试从C++的角度来说明在使用Rust时需要特别注意的一些地方,特别是其中的思维方式的转变(mind shift)。 不久前 Stackoverflow 网站做了一项有八万多开发人员参与的调查问卷,在“大家最想学习的编程语言”选项中,Rust高居第一。 一、赋值的move语义 (一)C++ vs Rust C++的赋值操作是copy语义,在不考虑优化的...
最近,Linus在 “Torvalds 演讲:人工智能对编程的影响”:“我们正在从C语言转向Rust”。 网友讨论: Linus 选择 Rust 是因为,这是一个中长期解决方案,解决了 IT 世界中缺乏 C/C++ 人员的实际问题,所以他做出…
导读:C2Rust 工具能够将大多数 C 模块翻译成语义上等价的 Rust 代码。这些模块将单独编译,以生成兼容的目标文件。C2Rust 是 Galois 和 Immunant 共同推出的项目。由于受到 Facebook 和 Microsoft 的推崇,Rust 开始走进大众的视野,InfoQ 曾发表过《Rust 是系统编程的未来,C 是新的 Assembly》等文章,那么问题来了...
美国防高级研究计划局提议利用AI自动将旧C代码转换为Rust 为了加速向更安全的编程语言过渡,美国国防高级研究计划局(DARPA)正在推进一项名为TRACOT的项目,该项目旨在开发可以自动将遗留的C代码转化为Rust的机器学习工具。TRACOT代表的是TRanslating All C TO Rust,即“将所有C代码转换为Rust”。DARPA希望通过人工智能...
Linux之父Linus认为在人工智能推动下,我们正在从C语言逐渐转向Rust。以下是具体的原因和当前的情况:原因: 新人才短缺:C/C++等编程语言面临新人才短缺的问题,而Rust作为一种新兴的编程语言,具有吸引力。 简洁的语法和更好的安全特性:Rust的语法简洁,且具备更好的安全特性,这有助于提高生产力,尤其...