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

112 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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)