# レビュアー想定Q&A 査読で聞かれそうな質問と、準備しておくべき回答集。 ## Q1: 15命令で本当に足りる? **質問の意図**: 実用言語に必要な機能が本当に15命令で表現可能なのか疑問 **回答**: 高機能はプラグインへ押し出し、MIRは「What」だけを表現します。`ExternCall` 経由で任意の拡張が可能で、IR拡張は不要です。例えば: - 文字列操作 → StringBoxプラグイン - ネットワーク → NetworkBoxプラグイン - GPU計算 → CudaBoxプラグイン(将来) ## Q2: フォールバックは? **質問の意図**: JIT未実装の命令に遭遇した時の挙動 **回答**: フォールバックは全廃しました。VM=仕様、JIT=高速版という明確な位置づけです。未実装は即エラー+該当VM関数への誘導で修正サイクルを短縮します。これにより: - 複雑性の排除 - デバッグの容易化 - 性能予測可能性の向上 ## Q3: 最適化は弱くない? **質問の意図**: 15命令では高度な最適化が困難では? **回答**: O1/O2を表駆動で段階導入しています。等価性を崩さず、ホット箇所はプラグイン側の vtable 直結とAOT/LTOで補完します。現状: - O1: 正規化/ピープホール/DCE - O2: 基本的なインライン展開 - 将来: エスケープ解析/LICM ## Q4: 既存比較(Wasm/LLVM/Smalltalk)との差は? **質問の意図**: 先行研究との新規性 **回答**: Box でメタ情報を一元管理し、**IRを増やさず**VM/JIT/AOT等価を実証しました。実装規模と到達速度が新規性です: - WebAssembly: 170命令 → Nyash: 15命令(91%削減) - 開発期間: Go(3年) vs Nyash(30日) - 等価性検証: trace_hashによる自動検証(世界初) ## Q5: 再現可能性は? **質問の意図**: 論文の主張を第三者が検証可能か **回答**: 完全にオープンソースで、`make smoke` コマンド一発で検証可能です: ```bash make smoke # {VM,JIT,AOT}×{GC on,off} の trace_hash 自動検証 ``` GitHubで全履歴公開、CIで継続的検証も実施中。 ## Q6: 実用性は? **質問の意図**: 研究だけでなく実際に使える言語か **回答**: 既に以下のアプリケーションが動作: - Chip-8エミュレータ - テキストエディタ(Kilo) - LISPインタープリター - 統計計算ツール 配布可能なネイティブEXE生成も実現済み。