数年前まで、Rustコードをコンパイルする唯一の方法は、バックエンドにLLVMを使うrustcコンパイラを利用することでした。その後、mrustc、GCCのRustサポート(gccrs)、rust_codegen_gcc、Craneliftなど複数のプロジェクトがRustのコンパイラ実装を多様化させてきました。最新のプロジェクトであるEurydiceは、RustコードをクリーンなCコードに変換することを目指しています。これは、検証ツールがCを前提とする高信頼性ソフトウェアにおいて有用です。
2023年に始まったEurydiceは、Rustコードに形式検証を適用するツールを開発するAeneasプロジェクトの一部です。InriaとMicrosoftの研究者によって保守されており、標準的なコンパイラの構造に従っています。すなわち、Rustの解析、IRへの変換、パスの適用、そしてCの出力です。
他のコンパイラとは異なり、Eurydiceはコードの構造を保ちながら、Rust固有の構文を取り除きます。たとえば、最小公倍数を求める関数を、評価順序を維持するための一時変数を用いた読みやすいCにコンパイルします。ジェネリクスやイテレータのため、すべてのRustプログラムを忠実に変換できるわけではありませんが、CコンパイラはあってもRustのサポートがない環境では、より円滑な移行を可能にします。
このプロジェクトはMITおよびApache-2.0ライセンスのコードを含み、外部からの貢献も受け付けています。
出典: Hacker News · 要約:HeadlinesBriefing