Folia
← 返回头版

Rust代码可编译为可读C代码,Eurydice工具问世

Eurydice是一款开源工具,能够将Rust代码编译转换为可读的C代码1。该项目由法国国家计算机科学研究机构Inria和微软员工共同维护,并接受外部贡献1,是Aeneas形式化验证项目的一部分1。Jonathan Protzenko是该项目最多产的贡献者1。

该工具采用MIT和Apache-2.0双重许可,项目始于2023年1。Eurydice基于KaRaMeL项目进行开发,后者原本用于F*编程语言的C代码生成1。在技术实现上,工具利用rustc的中级中间表示(MIR)进行转换,通过Charon工具以JSON格式提取相关代码信息1。生成的C代码采用-fno-strict-aliasing编译标志以处理严格别名规则问题1。

Eurydice通过保留原始代码结构并消除Rust特有构造来实现跨语言转换,特别适用于需要C编译器支持的高保证软件领域1。目前该工具在小型自包含程序上表现良好,但在处理const generics等较新Rust特性时存在限制1。


评论