为了加快向内存安全编程语言的迁移步伐,美国国防部高级研究计划局(DARPA)正积极推动一项名为“TRACTOR”的创新项目。TRACTOR,即“TRanslating All C TO Rust”,是一个旨在利用先进的机器学习技术自动将老旧的C代码转换为Rust语言的工具。内存安全问题一直是软件开发中的老大难,比如常见
🛠️ Rust嵌入式安全四重奏 ✅ 第一重:硬件资源守护者 电机控制实战 C痛点:PWM占空比调整后未释放资源,引发电机堵转Rust方案:RAII机制确保异常断电时仍自动复位外设 ✅ 第二重:数据流安全盾 工业物联网实证 德国工厂传感器网络采用Rust重构通信管道 成果:50万次/秒采样零丢包,传统方案存在0.5%数据丢失 ...
我们已经能够将大多数 C 代码转换为与语言交互接口兼容的、等价的 Rust:lua、NGINX 和 zstd 在无需任何更改的情况下进行了 transpile,而 ioq3 只需在 Rust 输出中进行一个小的更改即可运行(上面所示的ssemask问题)。我们希望,随着 Rust 的成熟,我们可以解决这些阻碍 C 和 Rust 之间的完全兼容的边缘情况。 作者...
c2rust:这是一个专门设计的工具,可以将C代码转换为等效的Rust代码。使用方法通常是: 安装c2rust工具(通过Rust的包管理器cargo或源码安装)。 输入C源文件,运行命令(如c2rust transpile file.c),生成Rust代码。 检查生成的Rust代码。 但需要注意的是,c2rust生成的代码通常包含unsafe块(不安全的Rust代码),因为C中的...
理想情况下,只要用自然语言告诉 AI 将 C、C++ 遗留代码转为 Rust 代码,它确实会帮助转换,但是这样生成的结果是否可以直接使用?我们距离 TRACTOR 项目成为现实又还有多远? 正在负责 TRACTOR 项目的工作 Wallach 坦言,该项目的目标是实现高度自动化,但这需要克服一些棘手的技术挑战。
Immunant 的工程师们首先要做的选择是,是一步一步地进行移植,还是使用 c2rust 移植整个代码库,获得一个不安全但可运行的 Rust 实现,然后再以此为基础进行重构和重写,使其变得安全而又符合 Rust 的语言习惯。最终,他们决定采用 c2rust,因为它有两大优势:一是可以在重构的同时测试移植的代码,二是降低了对...
相较于使用指针来表达可选情形,Option<T>的表达力会更丰富一些,因为没有强制将T转成T*,保留了移动优化的可能性;同时,使用专门的类型来表达可选,在语义上也理加精确一些。 了解Haskell的同学可以发现,Option与Maybe如出一辙。事实上,Rust的类型系统,很大程度地受到了Haskell的影响,所以很多地方可以看到Haskell的影子...
还有人给出了更为辛辣戏谑的评论:“当一切都变得一团糟时,就是Rust开发者们大赚特赚的时候。”当那些本不适合被转换到新语言(如 Rust)的旧代码或系统被强行要求转换时,当盲目地使用AI来转转换旧代码时,可能会产生更多的问题而不是解决问题。 这些来自民间的声音也印证了Stack Overflow不久前发布的2024年开发者调...
最近,Linus在 “Torvalds 演讲:人工智能对编程的影响”:“我们正在从C语言转向Rust”。 网友讨论: Linus 选择 Rust 是因为,这是一个中长期解决方案,解决了 IT 世界中缺乏 C/C++ 人员的实际问题,所以他做出…
基于 Rust 的 async/await 无论在大型计算机还是微型计算机上运行,都可以向用户呈现完全相同的界面。位于 Ockam Workers 上的协议接口也可以在任何不同地方运行的情况下呈现完全相同的简单接口。最终,在 Wadhwa 的带领下,Ockam 放弃了系统内的数万行 C 语言代码,并利用一段时间完成了向 Rust 的全面转型。在经历...