Phase 15 自己ホスティング準備メモ - 箱積み上げ戦略 ================================================= Date: 2025-09-03 Author: Claude + にゃ ■ 基本理念:箱を下にして積み重ねる ===================================== フォールバック不要、Rust依存なし(EXEライブラリのみ) 一度置いた箱は動かさない 下の箱が安定なら、上も安定 複雑さは敵、シンプルさは友 ■ 基礎Box群の階層構造 ====================== 第1層(最下層):これがないと何も始まらない ├── MemoryBox // メモリ管理 ├── StringBox // 文字列処理 ├── ArrayBox // 配列操作 ├── MapBox // 連想配列 └── ErrorBox // エラー処理 第2層:言語処理の基礎 ├── TokenBox // 字句解析 ├── ASTBox // 構文木 ├── SymbolBox // シンボルテーブル └── ScopeBox // スコープ管理 第3層:コンパイラコア ├── ParserBox // パーサー ├── MIRBox // 中間表現(13命令) ├── OptimizerBox // 最適化 └── GeneratorBox // コード生成 第4層:実行系 ├── InterpreterBox // インタープリター ├── VMBox // 仮想マシン ├── JITBox // JITコンパイラ(Cranelift) └── LinkerBox // リンカー(lld) ■ 準備期間の研究項目 ==================== 1. 依存関係マップ作成 - 何が何に依存? - 最小限の依存で最大の効果 - 循環依存の排除 2. インターフェース設計 - 全Boxの共通プロトコル - 入力/出力の標準化 - エラー処理の統一 3. ビルド順序の科学 - Day 1: 基礎Box群 - Day 2: 言語処理層 - Day 3: コンパイラ層 - 完成まで一直線 4. 最小ブートストラップセット - 自分自身をコンパイルできる最小構成 - 必須機能の特定 - 段階的な機能追加 ■ 箱の品質保証原則 ================== 1. 単体で完結 - 他に依存しすぎない 2. 明確な責務 - 1つの箱は1つの仕事 3. テスト可能 - 単独で動作確認 4. 不変インターフェース - 一度決めたら変更なし ■ 実装戦略 ========== 1. Rust実装の機能分解(Box単位) 2. 各Boxの仕様書作成 3. テストケースの移植計画 4. Box間プロトコル設計 5. 最小実装から始める 6. 増分的に機能追加 ■ 成功の鍵 ========== - 準備こそすべて - 急いで実装より、じっくり設計 - 箱を積み重ねれば必ず頂上に到達 - フォールバックなし、後戻りなし、前進あるのみ ■ 革新的アイデア ================ 1. BoxDNA設計書 - 各Boxの入力/出力/依存を明文化 - 遺伝子のように継承・組み合わせ 2. 増分コンパイル対応 - 変更部分だけ再コンパイル - 開発効率の向上 3. 可視化ツール - 進捗の見える化 - 依存関係の図示 ■ 数値目標 ========== - 80,000行 → 20,000行(75%削減) - MIR13命令で全機能実現 - ビルド時間:1分以内 - テストカバレッジ:90%以上 ■ コンテキスト圧縮対策 ====================== 1. ANCP活用(Phase 12.7) - 90%圧縮でAIコンテキスト節約 - [ANCP仕様書](../../phase-12.7/ancp-specs/ANCP-Token-Specification-v1.md) 2. モジュール分割開発 - 各Boxを独立して開発 - 統合は最後に実施 3. AI協調開発 - Claude:実装担当 - ChatGPT5:リファクタリング - Gemini:レビュー - Codex:デバッグ支援 ■ 関連ドキュメント ================== - [自己ホスティングlld戦略](self-hosting-lld-strategy.md) - [Phase 15 README](README.md) - [Phase 12.7 ANCP](../../phase-12.7/) - [MIR13命令セット](../../../../reference/mir/INSTRUCTION_SET.md) ■ 次のアクション ================ 1. このメモをベースに詳細設計 2. Box依存関係グラフの作成 3. 最小実装セットの確定 4. 各Boxの仕様書ドラフト ===================================== 「箱を積み上げて、世界一美しいコンパイラを作るにゃ!」