用 Eurydice 把 Rust 编译成可读的 C
来源:lwn.net — 2026-10-10
📋 概述
LWN 报道 Eurydice:在 rustc 之外,mrustc、GCC 的 gccrs 等项目让 Rust 的编译器实现多样化,而 Eurydice 更进一步——把 Rust 代码转换成干净的 C。这对高保障软件特别有用,因为现有的验证与合规工具链都以 C 为目标,有些环境也只有 C 编译器而没有可用的 Rust 编译器;它已被用来把后量子密码例程从 Rust 转到 C。项目 2023 年启动,代码混合 MIT 与 Apache-2.0 许可,属于 Inria 与微软维护的 Aeneas 项目家族。编译流程与常见编译器一样经过中间表示与多趟变换,但特别强调保留代码整体结构、显式插入临时变量以维持求值顺序;泛型需要单态化,迭代器循环与动态大小类型则要转成支持代码或 while 循环。
🔑 核心要点
- Eurydice 的目标是把 Rust 转换成干净、可读的 C。
- 动机是高保障软件的验证与合规工具链都以 C 为目标。
- 已被用于把 后量子密码例程从 Rust 转到 C。
- 项目 2023 年启动,属 Inria 与微软维护的 Aeneas 项目家族。
- 它强调保留结构并显式插入临时变量以维持求值顺序。
💡 金句
Eurydice is concerned with preserving the overall structure of the code while removing constructs that exist in Rust but not in C.
👍 0
👎 0
← 返回 Hacker News 首页