Files
hakorune/docs/papers/active/paper-d-jit-to-exe/README.md
Moe Charm 4e824fa00e Phase 12.7文法改革: ドキュメント文法統一 + VMリファクタリング準備
🌟 Phase 12.7文法改革に基づくドキュメント更新
- init {} → field: TypeBox 個別フィールド宣言形式
- init() → birth() コンストラクタ統一
- pack() → 廃止(birth()に統一)
- public {}/private {} → 個別フィールド修飾子
- override → 廃止(メソッド定義はシンプルに)

📚 更新したドキュメント
- CLAUDE.md: メイン開発ガイド
- docs/quick-reference/syntax-cheatsheet.md: 構文早見表
- docs/reference/language/LANGUAGE_REFERENCE_2025.md: 言語リファレンス
- docs/development/roadmap/phases/phase-15/README.md: Phase 15計画

🔧 VMリファクタリング準備
- vm_methods.rs: VMメソッド呼び出しの分離
- plugin_loader.rs → plugin_loader/: ディレクトリ構造化
- mir/builder/exprs.rs: 式ビルダー分離

📝 新規ドキュメント追加
- 論文戦略・ロードマップ
- Phase 15セルフホスティング準備資料
- Codex Androidセットアップガイド

ビルドは正常に通ることを確認済み!🎉

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-04 06:27:39 +09:00

3.2 KiB
Raw Blame 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ファサード

// 最小限の美しいインターフェース
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. 産業的: 組み込みシステムへの応用可能性

🔗 関連資料