67 lines
2.1 KiB
Markdown
67 lines
2.1 KiB
Markdown
|
|
# Phase 16: 折りたたみ言語(FoldLang)- Box世界の合成最適化
|
|||
|
|
|
|||
|
|
## 📋 概要
|
|||
|
|
|
|||
|
|
セルフホスティング達成後の次なる進化フェーズ。
|
|||
|
|
Nyashの「Everything is Box」哲学を維持しながら、実用的な実行速度を実現する革新的最適化層。
|
|||
|
|
|
|||
|
|
## 🎯 フェーズの目的
|
|||
|
|
|
|||
|
|
1. **Box境界を越えた最適化**: 複数のBox操作を1つに融合
|
|||
|
|
2. **デバッグ容易性の維持**: unfoldでいつでも元に戻せる
|
|||
|
|
3. **実用速度の実現**: 30-40%の性能改善
|
|||
|
|
4. **MIR15の単純性維持**: 命令追加なしで最適化
|
|||
|
|
|
|||
|
|
## 📊 主要成果物
|
|||
|
|
|
|||
|
|
- [ ] 純度属性システム(#[ny.pure]等)
|
|||
|
|
- [ ] FoldPass実装(BoxCall融合エンジン)
|
|||
|
|
- [ ] Fold Inspector(可視化ツール)
|
|||
|
|
- [ ] unfoldデバッグモード
|
|||
|
|
- [ ] 性能ベンチマークスイート
|
|||
|
|
|
|||
|
|
## 🔧 技術的アプローチ
|
|||
|
|
|
|||
|
|
### 中核アイデア
|
|||
|
|
```
|
|||
|
|
従来: Box境界 = 最適化の壁
|
|||
|
|
FoldLang: Box境界 = 最適化の単位
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 実装例
|
|||
|
|
```nyash
|
|||
|
|
# ユーザーコード(変わらない)
|
|||
|
|
result = data.map(f).filter(p).map(g)
|
|||
|
|
|
|||
|
|
# 内部で自動融合
|
|||
|
|
# 3回のループ → 1回のループ
|
|||
|
|
# 3回のアロケーション → 1回のアロケーション
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🔗 関連ドキュメント
|
|||
|
|
|
|||
|
|
- [折りたたみ言語設計詳細](fold-lang-design.txt)
|
|||
|
|
- [Phase 15: セルフホスティング](../phase-15/)
|
|||
|
|
- [Phase 12.5: 最適化戦略](../phase-12.5/)
|
|||
|
|
|
|||
|
|
## 📅 実施時期
|
|||
|
|
|
|||
|
|
- **開始条件**: Phase 15(セルフホスティング)完了後
|
|||
|
|
- **推定開始**: 2026年後半
|
|||
|
|
- **推定期間**: 3-4ヶ月
|
|||
|
|
|
|||
|
|
## 💡 期待される成果
|
|||
|
|
|
|||
|
|
1. **性能改善**: Array/String操作で30-40%高速化
|
|||
|
|
2. **メモリ効率**: 中間オブジェクト削減で50%改善
|
|||
|
|
3. **GC負荷軽減**: オブジェクト生成数1/3
|
|||
|
|
4. **開発体験**: デバッグ時は自動unfold
|
|||
|
|
|
|||
|
|
## 🌟 なぜPhase 15の後か?
|
|||
|
|
|
|||
|
|
1. **複雑性の分離**: まず動くものを、次に速いものを
|
|||
|
|
2. **ドッグフーディング**: Nyashで最適化を書く
|
|||
|
|
3. **明確な成功基準**: 各フェーズで達成感
|
|||
|
|
|
|||
|
|
> 「折りたたみ言語 = Box世界の合成最適化層」
|
|||
|
|
> ChatGPT5による革新的提案(2025-09-01)
|