Rustish Language Family
表示
Rustish言語群は、Rustの型安全性と構文的洗練を継承しつつ、低レベルプログラミングにおける柔軟性と明示性を最大限に重視した構文系列である。OSやVM、リアルタイムシステムの実装を対象とする。
構成
[編集]以下の3つの言語が役割分担を行う:
Rustish C
[編集]C言語の自由度を保ちつつ、Rustのモジュールシステムや構文糖衣を導入した言語。
- unsafe前提で自己参照や直ポインタが容易
- Cと互換性を保ちながらも、ビルドや依存管理はCargoライク
- Rustと同等の構文的構造を持ち、相互呼び出しが可能
Rustish ASM
[編集]アセンブリに準じた構文で書かれた最下層言語。
- 明示的なレジスタ、割り込み、セグメント制御が可能
- LLVMやCraneliftへの直接対応も視野
- Rustish CとABIを共有し、インライン展開も可
Rustとの関係
[編集]Rustish CおよびRustish ASMは、Rustと次のように補完し合う:
- Rust:安全なアプリケーションロジック、ユーザー空間
- Rustish C:安全性と柔軟性の中間、カーネル層、VM、GCなど
- Rustish ASM:ブートローダ、割り込みハンドラ、最小限のプリミティブ
相互接続
[編集]| 言語 | 呼び出し元 | 呼び出し先 | 接続方法 |
|---|---|---|---|
| Rust | Rust | Rustish C | FFI(`extern "C"` 相当) |
| Rustish C | Rustish C | Rustish ASM | インラインアセンブリ、マクロ展開 |
| Rustish C | Rust | Rust | `use`, `mod`, `#[link]` |
| Rustish ASM | Rustish ASM | Rustish C | ジャンプ+ABI準拠コール |
使用想定
[編集]- OS設計(マイクロカーネル、ドライバ、ページング制御)
- 構文解析インフラ(YOYUのような可搬かつ低レベルなシステム)
- 自作ランタイム、GC、リアルタイムシステムの土台