Files
hakorune/docs/papers/active/paper-d-jit-to-exe/README.md

112 lines
3.2 KiB
Markdown
Raw Normal View History

# Paper D: From JIT to Native - A Unified Compilation Pipeline for Box-based Languages
## 📋 概要
NyashのJIT実行からネイティブEXE生成までの統一コンパイルパイプラインに関する論文。
MIR13という極小IRからCranelift経由でネイティブバイナリを生成する革新的アプローチ。
## 🎯 論文の新規性
### 1. **極小IRMIR13による統一実行**
- たった13命令で全機能実現
- JIT/インタープリター/AOT/WASMすべてに対応
- Box哲学による統一的メモリモデル
### 2. **Cranelift + lld内蔵戦略**
- 外部コンパイラ依存の完全排除
- JITコンパイル結果をそのままEXE化
- プラットフォーム非依存の美しい設計
### 3. **C ABIファサード**
```c
// 最小限の美しいインターフェース
ny_mir_to_obj(mir_bin, target_triple) -> obj_bytes
ny_mir_jit_entry(mir_bin) -> exit_code
ny_free_buf(buffer)
```
### 4. **パフォーマンス最適化**
- ホットパス検出→選択的JIT
- JIT結果のキャッシュ→AOT変換
- TypedArray bounds-check併合
## 📊 評価計画
### ベンチマーク対象
1. **コンパイル時間**: MIR→EXE
2. **実行性能**: JIT vs AOT
3. **バイナリサイズ**: 最小実行ファイル
4. **起動時間**: JIT warmup vs AOT instant
### 比較対象
- Go単一バイナリ生成
- Rustネイティブコンパイル
- Node.jsJIT実行
- GraalVMJIT→AOT
## 🔬 技術的詳細
### パイプライン構成
```
AST → MIR13 → Cranelift IR → Machine Code → Object File → EXE
↓ ↓ ↓
Interpreter JIT Direct Execute
```
### 実装のポイント
1. **MIR最適化パス**
- デッドコード除去
- 定数畳み込み
- インライン展開
2. **Cranelift統合**
- Module構築
- Function定義
- コード生成
3. **リンカー統合**
- lld-linkWindows
- ld.lldLinux
- nyashrtランタイム
## 📅 執筆スケジュール
### Phase 1: 実装2-3週間
- [ ] JIT→Object生成実装
- [ ] lld統合
- [ ] 基本的なEXE生成
### Phase 2: 評価1-2週間
- [ ] ベンチマーク実装
- [ ] 性能測定
- [ ] 結果分析
### Phase 3: 執筆2週間
- [ ] Abstract作成
- [ ] 各章執筆
- [ ] 図表作成
## 🎯 投稿先候補
### トップ会議
- **PLDI 2026**: プログラミング言語設計の最高峰
- **CC 2026**: コンパイラ構築専門
- **CGO 2026**: コード生成最適化
### ジャーナル
- **TOPLAS**: ACM最高峰ジャーナル
- **Software: Practice and Experience**: 実装重視
## 💡 期待されるインパクト
1. **学術的**: 極小IRによる統一実行モデルの提案
2. **実用的**: 外部依存ゼロのコンパイラ実現
3. **教育的**: シンプルで理解しやすい実装
4. **産業的**: 組み込みシステムへの応用可能性
## 🔗 関連資料
- [Phase 10: JIT実装](../../development/roadmap/phases/phase-10/)
- [Phase 15: 自己ホスティング](../../development/roadmap/phases/phase-15/)
- [MIR13仕様書](../../reference/mir/INSTRUCTION_SET.md)
- [Cranelift統合設計](../../development/roadmap/phases/phase-15/self-hosting-lld-strategy.md)