Files
hakorune/docs/phases/phase-9/phase_9_12_universal_frontends.md

37 lines
1.5 KiB
Markdown
Raw Normal View History

# Phase 9.12: Universal Frontends各言語→NyIR 落とし込み PoC
目的What/Why
- 「All Languages → NyIR」を実証するため、代表的な言語サブセットのフロントエンドPoCを作る。
- 最適化は脇に置き、意味保存とエッジケースの把握を最優先にする。
対象Initial set
- Cサブセット例外なし/CASあり
- JavaScript/TypeScriptサブセット辞書/例外/非同期の最小)
- Pythonサブセット辞書/例外/awaitの最小
- JVMサブセットbytecode 経由:例外/スレッド)
成果物Deliverables
- `lang2nyir-<lang>` ツールAST/IR→NyIR
- Golden NyIR各サンプルの `.nyir`
- 変換ガイド言語機能→NyIR/Ext/標準Box の対応表)
スコープScope
1) C-subset → NyIR
- if/loop/call/return、構造体の最小投影、CASAtomicExt
2) JS/TS-subset → NyIR
- 例外Try/Throw、Promise/awaitAwait近似、辞書/配列→標準Box
3) Python-subset → NyIR
- 例外・awaitの最小、辞書/リスト→標準Box
4) JVM-subset → NyIR
- 例外/スレッド/同期の最小投影Ext準拠
受け入れ基準Acceptance
- 各言語サンプルが NyIR に落ち、interp/vm/wasm/llvm のいずれかで実行可能
- Golden NyIR を用いた Diff 一致が取れる
参照References
- NyIR 仕様/Ext: `docs/nyir/spec.md`
- ビジョン: `docs/nyir/vision_universal_exchange.md`
- ABI/BID: `docs/予定/native-plan/box_ffi_abi.md`