73 lines
2.5 KiB
Markdown
73 lines
2.5 KiB
Markdown
|
|
# レビュアー想定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生成も実現済み。
|