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生成も実現済み。 |