HeadlinesBriefing HeadlinesBriefing.com

Eurydice 将 Rust 编译为可读 C 代码

Hacker News •
×

几年前,编译 Rust 代码的唯一方式是使用以 LLVM 作为后端的 rustc 编译器。此后,包括 mrustc、GCC 的 Rust 支持(gccrs)、rust_codegen_gcc 和 Cranelift 在内的多个项目使 Rust 的编译器实现更加多样化。最新的项目 Eurydice 旨在将 Rust 代码转换为简洁的 C 代码,这在验证工具要求使用 C 的高保障软件中很有用。

Eurydice 始于 2023 年,是 Aeneas 项目的一部分,该项目开发将形式化验证应用于 Rust 代码的工具。Eurydice 由 Inria 和 Microsoft 的研究人员维护,遵循标准的编译器结构:解析 Rust,转换为 IR,应用各种处理流程,然后输出 C 代码。

与其他编译器不同,Eurydice 在移除仅限 Rust 的语法结构的同时保留代码结构。例如,它会将最小公倍数函数编译为可读的 C 代码,并使用临时变量来维持求值顺序。虽然由于泛型和迭代器的原因,并非所有 Rust 程序都能被忠实地转换,但对于只有 C 编译器而没有 Rust 支持的环境,Eurydice 提供了更平滑的过渡方案。

该项目包含以 MIT 和 Apache-2.0 许可证发布的代码,并接受外部贡献。

来源: Hacker News · 由HeadlinesBriefing整理摘要