Rustish Cとは何か
表示
Rustish Cは、C言語の柔軟性とRust言語の構文的なモダンさを併せ持つことを目指す、新しい低レイヤ向け言語設計思想である。
動機
[編集]C言語は「プログラマが書いたことだけを実行する」極めて明快な哲学を持つが、現代的な開発においては以下の点で限界もある:
- モジュール機構の不在
- 安全性の不足を補う仕組みのなさ
- コードの可搬性、構文表現力の貧弱さ
一方Rustは、安全性と表現力を備えてはいるが、その制約の強さゆえにC的な自由さとは相容れない局面がある。特に、自己参照構造体やモノモーフィズムの強制は、設計の自由を大きく損なう。
特徴
[編集]Rustish Cは以下のような特徴を持つ:
- C互換の構文とポインタ操作:従来のC言語の全機能をベースとする
- Rust風のモジュールと依存管理:`mod`, `use` による名前空間管理
- オペレータオーバーロードの導入:型ごとの演算子定義が可能
- 明示的なunsafe構文の撤廃:安全性を言語が強制しない(責任は開発者)
- Cargoに類するビルドシステム:依存性管理とコンパイル単位の自動整理
- GCもランタイムも不要:メモリ管理はCと同様に全て明示的
哲学
[編集]Rustish Cは「高級機能を持ったC」である。以下のような開発者の思想に応える:
- 自由を最優先する
- 安全性や抽象は任意であり、強制されない
- 文法と構文木は明示的に操作可能で、構文解析インフラとの相性がよい
- ランタイムやGCを一切前提としない
応用例
[編集]- 組込み/OSカーネル(L4のような厳密かつ高速な構造体アクセスが可能)
- 独自言語処理系(YOYUのようにASTやインライン展開に特化した記述が可能)
- メモリ・パフォーマンスチューニングが重要なライブラリの実装
今後の展望
[編集]Rustish Cは、単なるCの方言やRustのサブセットではない。これはあくまで、自由な記述と構文的洗練を両立するための新しいプログラミングパラダイムである。よりC的で、よりRust的な言語設計の萌芽となることを目指す。