- 論文A: MIR13命令とIR設計 (コンパイラ・PL実装者向け) - ArrayGet/Set → BoxCall統合による50%削減 - IC/AOT/TypedArray最適化 - Everything is Box哲学のMIR実装 - 論文B: Nyash言語と実行モデル (言語理論・分散システム向け) - init/fini対称性メモリ管理 - P2P Intentモデル - 多層実行アーキテクチャ(Interpreter→VM→JIT→AOT→WASM) 既存のmir15-fullstack/unified-lifecycleはarchiveに移動
140 lines
4.2 KiB
Markdown
140 lines
4.2 KiB
Markdown
# 論文B: Nyash言語と実行モデル
|
||
|
||
## 📚 概要
|
||
|
||
**タイトル**: Nyash: A Box-First Programming Language with Symmetric Memory Management and P2P Intent Model
|
||
|
||
**主題**: Nyash言語そのものの設計と実装
|
||
|
||
**対象読者**: 言語理論・分散システム・アプリ開発寄り
|
||
|
||
## 🎯 研究ポイント
|
||
|
||
### 1. init/fini対称性によるメモリ管理
|
||
- コンストラクタ(init/birth/pack)とデストラクタ(fini)の対称設計
|
||
- 明示的なリソース管理による安全性
|
||
- GCオン/オフ切り替え可能な柔軟性
|
||
|
||
### 2. P2P Intentモデル
|
||
- Box間の意図ベース通信
|
||
- 分散アプリケーション向け設計
|
||
- NyaMeshライブラリによる実装
|
||
|
||
### 3. 多層実行アーキテクチャ
|
||
- **Interpreter**: 開発・デバッグ用
|
||
- **VM**: 高速実行
|
||
- **JIT**: 動的最適化
|
||
- **AOT**: 配布用バイナリ
|
||
- **WASM**: Web展開
|
||
|
||
## 🚀 実装例
|
||
|
||
### 1. NyashCoin - P2P暗号通貨
|
||
```nyash
|
||
box NyashCoin from P2PBox {
|
||
init { balance, transactions }
|
||
|
||
birth(nodeId, network) {
|
||
from P2PBox.pack(nodeId, network)
|
||
me.balance = new MapBox()
|
||
me.transactions = new ArrayBox()
|
||
}
|
||
|
||
onIntent(intent, data, sender) {
|
||
switch intent {
|
||
"transfer": me.handleTransfer(data, sender)
|
||
"mine": me.handleMining(data, sender)
|
||
"sync": me.handleSync(data, sender)
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### 2. プラグインストア
|
||
- 動的プラグインロード
|
||
- TypeBox ABIによる相互運用
|
||
- セキュアな実行環境
|
||
|
||
### 3. GUI/Webアプリケーション
|
||
- EguiBoxによるGUI開発
|
||
- WebCanvasBoxによるブラウザ対応
|
||
- 統一的なBox APIによる開発
|
||
|
||
## 📊 評価計画
|
||
|
||
### 言語機能の評価
|
||
- 表現力: 他言語との比較
|
||
- 学習曲線: 初学者への調査
|
||
- 開発効率: LOCとバグ率
|
||
|
||
### 性能評価
|
||
- 各バックエンドのベンチマーク
|
||
- メモリ使用量の比較
|
||
- 起動時間・応答性
|
||
|
||
### 実用性評価
|
||
- 実アプリケーション開発
|
||
- プラグインエコシステム
|
||
- クロスプラットフォーム性
|
||
|
||
## 📁 ディレクトリ構造
|
||
|
||
```
|
||
paper-b-nyash-execution-model/
|
||
├── README.md # このファイル
|
||
├── abstract.md # 論文概要
|
||
├── main-paper.md # 本文
|
||
├── chapters/ # 章別ファイル
|
||
│ ├── 01-introduction.md
|
||
│ ├── 02-language-design.md
|
||
│ ├── 03-memory-model.md
|
||
│ ├── 04-p2p-intent.md
|
||
│ ├── 05-execution-backends.md
|
||
│ ├── 06-case-studies.md
|
||
│ └── 07-conclusion.md
|
||
├── figures/ # 図表
|
||
│ ├── box-hierarchy.png
|
||
│ ├── execution-flow.svg
|
||
│ └── p2p-architecture.png
|
||
├── examples/ # コード例
|
||
│ ├── nyashcoin/
|
||
│ ├── plugin-store/
|
||
│ └── gui-apps/
|
||
├── data/ # 実験データ
|
||
│ ├── performance/
|
||
│ └── usability-study/
|
||
└── related-work.md # 関連研究
|
||
```
|
||
|
||
## 🗓️ スケジュール
|
||
|
||
- **2025年9月**: 実装例の完成・評価実施
|
||
- **2025年10月**: 執筆開始
|
||
- **2025年11月**: OOPSLA 2026投稿
|
||
- **2026年春**: Onward!投稿(設計哲学編)
|
||
|
||
## 📝 執筆メモ
|
||
|
||
### 強調すべき貢献
|
||
1. **Everything is Box哲学**: 統一的なオブジェクトモデル
|
||
2. **対称的メモリ管理**: init/finiによる明示的制御
|
||
3. **P2P Intentモデル**: 分散アプリケーションの新パラダイム
|
||
4. **多層実行環境**: 用途に応じた最適な実行方式
|
||
|
||
### 新規性
|
||
- Box中心の言語設計
|
||
- 意図ベースのメッセージング
|
||
- プラグイン第一級市民
|
||
- 実行バックエンドの透過的切り替え
|
||
|
||
### 実証
|
||
- 実動作するアプリケーション群
|
||
- プラグインエコシステムの構築
|
||
- クロスプラットフォーム展開
|
||
|
||
## 🔗 関連ドキュメント
|
||
|
||
- [Language Reference](../../../../reference/language/LANGUAGE_REFERENCE_2025.md)
|
||
- [Everything is Box](../../../../reference/boxes-system/everything-is-box.md)
|
||
- [P2P Box Guide](../../../../guides/p2p-guide.md)
|
||
- [Execution Backends](../../../../reference/architecture/execution-backends.md) |