crustc: `rustc`全体をC言語に翻訳
crustcは、Rustコンパイラであるrustcの全体をC言語に翻訳するプロジェクトです。これにより、RustのコンパイラをC言語で利用・解析できるようにし、Rustのエコシステムに対する新たなアプローチを提供します。
背景メモ
- Rustコンパイラ「rustc」(Rust公式のコンパイラ)を、ソースコード全体をC言語に変換するプロジェクト「crustc」。著者のFractalFir氏は、Rustのコンパイラ自体をRustで書かれた複雑なコードから、より低レイヤのCコードに自動変換している。
- なぜ重要か:Rustコンパイラは現在Rust自身で書かれている(セルフホスティング)。それをCに変換することで、Rustランタイムが使えない環境(例:カーネルモジュール、組み込みシステム、制約の厳しいOS)でもrustc相当の処理を動かせる可能性が開ける。また、Cコンパイラはほぼすべてのプラットフォームで利用可能なため、Rustツールチェインを新たに移植する手間が大幅に減る。
- 背景:この試みは従来の「RustをCにトランスパイルする」プロジェクト(例:mrustc)とは異なり、既存のrustcコードベースを直接変換する点で独自性がある。mrustcは最小限のRustコンパイラをCでゼロから書いたが、crustcは本家コンパイラの全機能を維持したままCコードを生成しようとしている。言語処理系やコンパイラ基盤への関心が高い読者にとって、Rustエコシステムの別の実装経路を示す注目の実験。