プログラミング
Canonical、大規模Cコードベースを安全なRustに翻訳する新プロジェクトを支援
Canonical Backs New Project to Translate Large C Codebases into Safe Rust (linuxiac.com)
要約
Canonicalは、大規模で成熟したソフトウェアプロジェクトをCからRustに自動的に移行することを実用的にするための、3年間の新しい研究プロジェクトを支援しています。このプロジェクトはCanonicalと英国のブリストル大学とのパートナーシップであり、2026年後半に開始される予定です。主な目標は、大規模なコードリポジトリを安全で信頼性が高く、保守しやすいRustに翻訳できる完全なプラットフォームを構築することです。しかし、より大きな課題は、すでに使用されている膨大な量の成熟したCソフトウェアです。これらのプロジェクトを手動で書き直すことはコストとリスクが高く、そのコードには長年の修正、互換性アップデート、パフォーマンス調整、および隠れた知識が含まれていることがよくあります。
全文翻訳
Canonicalは、大規模で成熟したソフトウェアプロジェクトをCからRustに自動的に移行することを実用的にするための、3年間の新しい研究プロジェクトを支援しています。このプロジェクトはCanonicalと英国のブリストル大学とのパートナーシップであり、2026年後半に開始される予定です。
主な目標は、数百行から数十万行のCコードを含む大規模なコードリポジトリを、安全で信頼性が高く、保守しやすいRustに翻訳できる完全なプラットフォームを構築することです。しかし、より大きな課題は、すでに使用されている膨大な量の成熟したCソフトウェアです。これらのプロジェクトを手動で書き直すことはコストとリスクが高く、そのコードには長年の修正、互換性アップデート、パフォーマンス調整、および隠れた知識が含まれていることがよくあります。
現在のソース間トランスレータは問題の一部しか解決していません。Canonicalによると、これらのツールはかなりの量のコードを処理できますが、C構造をあまりにも密接にコピーすることがよくあります。これにより、Rustコードが依然としてunsafeな機能に依存し、Cスタイルのパターンを維持し、Rust開発者が保守したいと思う前に多くのクリーンアップが必要になります。
LLMは異なる課題に直面します。それらはしばしば、小さくて明確なコード片に対して良い、イディオマティックなRustを作成できますが、リポジトリ全体のコンテキストを管理することははるかに困難です。また、正しく見えるコードでも、元のCバージョンと同じように動作しない場合があります。
これらの課題に対処するため、新しいプロジェクトではハイブリッド、または「ニューロシンボリック」アプローチを使用します。これは、機械学習と従来のプログラム分析、テスト、および形式手法を組み合わせたものです。
Canonicalによると、大規模なコードリポジトリは最初に、タイプ、依存関係、およびプログラムの動作方法に関する重要な詳細を保持しながら、個別に翻訳できる小さな部分に分割されます。翻訳では、既知のCからRustへの例でトレーニングされた言語モデルを使用し、単にC構文をコピーするのではなく、適切なRust機能を使用するRustコードを生成することを目指します。翻訳後、新しいコードが元のCバージョンと同じように動作するかどうかがチェックされます。
Ubuntuユーザーにとって重要なのは、この研究が小さな学術的な例を超えていくということです。Canonicalは、AppArmorとsnap-confineを実際のケーススタディとして使用する予定です。ただし、Canonicalは、AppArmorとsnap-confineが現在Rustで書き直されているわけではないことを明確にしています。これらのプロジェクトは、テクノロジーをテストするためのケーススタディとしてのみ使用されており、現在のバージョンを研究結果で置き換える計画はありません。
最後に、このイニシアチブは、CanonicalのUbuntuにおけるRustのより広範な採用にも適合していることを付け加えておきます。同社は、uutils coreutilsやsudo-rsのようなプロジェクトを、ディストリビューションで場所を得たRust実装の例として挙げています。
詳細については、UbuntuのDiscourseチャンネルの投稿を参照してください。
他の人に伝える:
X (Twitter) で共有
Reddit で共有
Facebook で共有
Threads で共有
Bluesky で共有
Telegram で共有
LinkedIn で共有
Hacker News で共有
Rust、AI生成貢献に対する公式ポリシーを採用
2026年8月6日
Rustベースのuutils Coreutils 0.10がGNU互換性93.5%に到達
2026年8月5日
1件のコメント
Canonical、SnapsとCharmsのためのプライベートエンタープライズストアをローンチ
2026年7月21日
Rust 1.97、新しいデフォルトシンボルマングリングスキームでリリース
2026年7月9日