Phase 12.7完了 + ChatGPT5によるVMリファクタリング
## 📚 Phase 12.7 ドキュメント整理 - ChatGPT5作成のANCP Token仕様書v1を整備 - フォルダ構造を機能別に再編成: - ancp-specs/ : ANCP圧縮技法仕様 - grammar-specs/ : 文法改革仕様 - implementation/ : 実装計画 - ai-feedback/ : AIアドバイザーフィードバック - 各フォルダにREADME.md作成で導線改善 ## 🔧 ChatGPT5によるVMリファクタリング - vm_instructions.rs (1927行) をモジュール分割: - boxcall.rs : Box呼び出し処理 - call.rs : 関数呼び出し処理 - extern_call.rs : 外部関数処理 - function_new.rs : FunctionBox生成 - newbox.rs : Box生成処理 - plugin_invoke.rs : プラグイン呼び出し - VM実行をファイル分割で整理: - vm_state.rs : 状態管理 - vm_exec.rs : 実行エンジン - vm_control_flow.rs : 制御フロー - vm_gc.rs : GC処理 - plugin_loader_v2もモジュール化 ## ✨ 新機能実装 - FunctionBox呼び出しのVM/MIR統一進捗 - ラムダ式のFunctionBox変換テスト追加 - 関数値の直接呼び出し基盤整備 次ステップ: ANCPプロトタイプ実装開始(Week 1) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -62,14 +62,26 @@ $NyashCompiler{compile(src){l ast=m.parse(src)l mir=m.lower(ast)r m.codegen(mir)
|
||||
## 🎯 最重要ドキュメント
|
||||
|
||||
### 📚 実装者必読
|
||||
- **[🔥 究極のAIコーディングガイド](ULTIMATE-AI-CODING-GUIDE.md)** ← ⭐ START HERE! ⭐
|
||||
- [📝 文法改革最終決定](grammar-reform-final-decision.txt)
|
||||
- [🔧 実装チェックリスト](implementation-final-checklist.txt)
|
||||
- [⚡ 極限糖衣構文提案](extreme-sugar-proposals.txt)
|
||||
- [🔄 糖衣構文フォーマッター](sugar-formatter-tool.txt)
|
||||
- **[🚀 ANCP実装計画(統合版)](implementation/ANCP-IMPLEMENTATION-PLAN.md)** ← ⭐ START HERE! ⭐
|
||||
- **[📋 ANCP Token仕様書 v1](ancp-specs/ANCP-Token-Specification-v1.md)** - ChatGPT5作成の最新仕様
|
||||
- [🔧 実装チェックリスト](implementation/implementation-final-checklist.txt)
|
||||
|
||||
### 🏗️ 技術仕様
|
||||
- [📐 文法技術仕様書](grammar-technical-spec.txt)
|
||||
### 📐 ANCP仕様書
|
||||
- **[🔥 究極のAIコーディングガイド](ancp-specs/ULTIMATE-AI-CODING-GUIDE.md)** - 5層圧縮体系
|
||||
- [⚡ 極限糖衣構文提案](ancp-specs/extreme-sugar-proposals.txt)
|
||||
- [🔄 糖衣構文フォーマッター](ancp-specs/sugar-formatter-tool.txt)
|
||||
- [🔬 圧縮技術参考ライブラリ](ancp-specs/compression-reference-libraries.md)
|
||||
|
||||
### 📝 文法仕様書
|
||||
- [📝 文法改革最終決定](grammar-specs/grammar-reform-final-decision.txt)
|
||||
- [📐 文法技術仕様書](grammar-specs/grammar-technical-spec.txt)
|
||||
|
||||
### 🤖 AIアドバイザーフィードバック
|
||||
- **[📋 統合フィードバック](ai-feedback/)** - 全AIアドバイザーの知見
|
||||
- [ChatGPT5実装アドバイス](ai-feedback/chatgpt5-ancp-implementation-advice.md)
|
||||
- [Claude/Codex技術分析](ai-feedback/codex-ancp-response.md)
|
||||
- [Gemini革命的評価](ai-feedback/gemini-ancp-response.md)
|
||||
- [即座実装ガイド](ai-feedback/quick-implementation-guide.md)
|
||||
|
||||
### 📁 アーカイブ(検討過程)
|
||||
- [🗃️ 過去の議論・検討資料](archive/)
|
||||
|
||||
@ -0,0 +1,111 @@
|
||||
# ChatGPT5先生のANCP実装アドバイス - 2025-09-03
|
||||
|
||||
## 🎯 総評:全面支持 + 事故防止のガードレール
|
||||
|
||||
> 「めっちゃ良い計画。やる価値デカいにゃ。」
|
||||
> 「Phase 12のABI安定+MIR最適化の上に載る"上物"で、下層を壊さない。」
|
||||
|
||||
## 📋 Go/No-Go評価
|
||||
|
||||
- **Go(強)**: 即座にAI効率が出る、下層を壊さない
|
||||
- **注意**: 文法改革と圧縮を**混ぜない**。段階導入必須
|
||||
|
||||
## ✅ 成功条件(出荷時に断言できるライン)
|
||||
|
||||
1. **完全可逆**: `P → C → P` & `P → C → F → C → P` が常に一致
|
||||
2. **コンパイラ等価**: `compile(P)` と `compile(F)` の MIRハッシュ一致
|
||||
3. **曖昧性ゼロ**: 字句規則を形式化(最大貪欲+必要箇所のみセミコロン自動挿入)
|
||||
4. **ソースマップ2.0**: トークン単位の双方向マップ + BoxID
|
||||
5. **測定公開**: 削減率・パース時間・LLMトークン消費を数字で提示
|
||||
|
||||
## 📅 4週間実装計画
|
||||
|
||||
### Week 1(Phase 12.7-A)— 最小で回す
|
||||
- P↔C のトークンベース変換(正規表現は使わない)
|
||||
- 固定辞書20語から開始
|
||||
- `nyashc --compact/--decompact` + `sourcemap.json`
|
||||
- CI: 既存サンプル全ファイルで P→C→P 等価テスト
|
||||
|
||||
### Week 2(12.7-B)— スマート化
|
||||
- 文字列/コメント/正規表現リテラル非変換ゾーン認識
|
||||
- 自動セミコロン挿入の衝突検出
|
||||
- LLMパック: `--llm-pack` が最小仕様カード生成
|
||||
|
||||
### Week 3(12.7-C)— F層(読み込み専用)
|
||||
- F(Fusion)を入力専用で導入(出力はC)
|
||||
- MIR直行デコーダ + 等価性検証
|
||||
- 代表5命令だけ実装して漸進展開
|
||||
|
||||
### Week 4(12.7-D)— ツール/拡張
|
||||
- VSCode拡張(C表示⇄Pホバー)
|
||||
- `nyash fmt --mode=pretty|compact`
|
||||
- ベンチ自動化:CSV出力
|
||||
|
||||
## 🚨 設計の"赤線"(破ると事故る)
|
||||
|
||||
1. **Pは正典** - PR/レビューは常にPで行う
|
||||
2. **識別子衝突禁止** - 予約語→記号化でも曖昧にならない
|
||||
3. **Unicode強制しない** - 常にASCIIモード完備
|
||||
4. **クロージャ/可変長演算** - ASTテンプレで可逆に
|
||||
|
||||
## 💡 記号マッピング実務案
|
||||
|
||||
### ASCIIモード(デフォルト)
|
||||
```
|
||||
box → $ new → ~n me → m
|
||||
local → ~l return → ~r from → @
|
||||
init → # if → ? else → :
|
||||
loop → ~L
|
||||
```
|
||||
|
||||
### 区切り規則
|
||||
- 記号トークンの左右に英数が来たら必ず1スペース自動挿入
|
||||
- `~[A-Za-z]` は将来予約
|
||||
|
||||
## 🔧 実装の鍵
|
||||
|
||||
### フォーマッタ可逆性
|
||||
- 変換は**トークン列→トークン列**
|
||||
- 文字列/テンプレ/正規表現の中身は一切触らない
|
||||
- 演算子の前置/後置/単項は個別トークン型
|
||||
- セミコロン自動挿入はスタック機械で判定
|
||||
|
||||
### CLI設計
|
||||
```bash
|
||||
nyashc --compact --mode=ascii|uni --emit=code,sourcemap
|
||||
nyashc --fusion --emit=fusion,mir --read-only
|
||||
nyash fmt --mode=pretty|compact
|
||||
nyash llm-pack <src-dir>
|
||||
```
|
||||
|
||||
## 📊 KPI(毎週測定)
|
||||
|
||||
- コード削減率(P→C、P→F)
|
||||
- パース/フォーマット時間(ms/MB)
|
||||
- MIR生成時間の差(P vs C vs F)
|
||||
- LLMトークン削減率
|
||||
- 等価テスト失敗率(%)
|
||||
|
||||
## 🔐 互換性とバージョニング
|
||||
|
||||
- **ANCP v1**: `ancp://v1?mode=ascii|uni` マジックコメント
|
||||
- 将来の記法変更は `ver` と `feature_bits` で表明
|
||||
|
||||
## ⚠️ リスクと対処
|
||||
|
||||
| リスク | 対処 |
|
||||
|--------|------|
|
||||
| 読みづらさ | Pを正典・Cは生成物。編集は常にP |
|
||||
| デバッグ困難 | ソースマップ2.0で例外・ログをPへ逆引き |
|
||||
| 学習コスト | VSCode拡張のホバー復元とQuick Toggle |
|
||||
| LLMの誤解 | llm-packに最小仕様カード必須付与 |
|
||||
|
||||
---
|
||||
|
||||
## 💬 結論
|
||||
|
||||
> **Phase 12.7 は"今やるべき"**。
|
||||
> ただし「常にPを正典」「トークン変換で可逆」「Fはまず入力専用」の三原則を守れば、
|
||||
> **90%圧縮×AI最適化**の恩恵を"事故ゼロで"取りにいけるにゃ。
|
||||
|
||||
**次の一歩**: AncpTranscoderのトークン仕様書(BNF/EBNF)作成!
|
||||
@ -0,0 +1,230 @@
|
||||
# ANCP Transcoder v1 トークン仕様(EBNF+運用ルール)
|
||||
|
||||
Author: ChatGPT5
|
||||
Date: 2025-09-03
|
||||
Version: 1.0
|
||||
|
||||
> まずは「P=Pretty(正典)→C=Compact(ANCP ASCII/Unicode)」の**トークン変換**が安全に往復できる最小コア。
|
||||
|
||||
## 1) レクサの前提
|
||||
|
||||
* 入力は UTF-8。**ASCIIモード**と**Unicodeモード**を切替(既定=ASCII)。
|
||||
* 変換は**トークン列→トークン列**。**文字列/コメント/正規表現**内部は**絶対に変換しない**。
|
||||
* 空白/改行/コメントは**隣接トークン間のメタに付与**して保持(ソースマップ2.0)。
|
||||
|
||||
### 1.1 トークンクラス(共通)
|
||||
|
||||
```ebnf
|
||||
Identifier = IDStart IDContinue* ;
|
||||
IDStart = Letter | "_" ;
|
||||
IDContinue = IDStart | Digit ;
|
||||
Digit = "0"…"9" ;
|
||||
Letter = "A"…"Z" | "a"…"z" | NonAsciiLetter ;
|
||||
|
||||
IntLiteral = Digit+ ;
|
||||
FloatLiteral = Digit+ "." Digit+ (ExponentPart)? | "." Digit+ (ExponentPart)? ;
|
||||
ExponentPart = ("e"|"E") ("+"|"-")? Digit+ ;
|
||||
|
||||
StringLit = '"' ( Escape | ~["\r\n] )* '"'
|
||||
| "'" ( Escape | ~['\r\n] )* "'" ;
|
||||
Escape = "\\" . ;
|
||||
|
||||
RegexLit = "/" ( Escape | ~[/\r\n] )+ "/" [a-z]* ; // Pのみ(Cでは素通し)
|
||||
|
||||
CommentLine = "//" ~[\r\n]* ;
|
||||
CommentBlock = "/*" .*? "*/" ; // ネスト不可(Phase1)
|
||||
|
||||
WS = Space | Tab ;
|
||||
NL = "\r"? "\n" ;
|
||||
```
|
||||
|
||||
## 2) 予約語と記号マップ(P→C)
|
||||
|
||||
**衝突しないASCII記号**を採用。Unicodeモードは `→` の右側を `uni` 欄で置換。
|
||||
**識別子と区別**するため、`~x` 形は**先頭に `~`**を付ける(通常のIDに現れにくい)。
|
||||
|
||||
| 機能 | Pretty(P) | Compact(C ascii) | Compact(C uni) |
|
||||
|------|-----------|------------------|----------------|
|
||||
| Box定義 | `box` | `$` | `$` |
|
||||
| 新規生成 | `new` | `~n` | `ⁿ` |
|
||||
| 自参照 | `me` | `m` | `m` |
|
||||
| 局所変数 | `local` | `~l` | `ˡ` |
|
||||
| 戻り | `return` | `~r` | `↩` |
|
||||
| 継承/委譲 | `from` | `@` | `@` |
|
||||
| 初期化 | `init` | `#` | `#` |
|
||||
| コンストラクタ | `birth` | `b` | `ᵇ` |
|
||||
| 静的 | `static` | `S` | `S` |
|
||||
| 条件 | `if` | `?` | `?` |
|
||||
| else | `else` | `:` | `:` |
|
||||
| ループ | `loop` | `~L` | `ᴸ` |
|
||||
| 継続 | `continue` | `~c` | `↻` |
|
||||
| 分岐peek | `peek` | `~p` | `ᵖ` |
|
||||
|
||||
> 予約域:`~[A-Za-z]` は**将来予約**で識別子に使えないことを仕様化。
|
||||
|
||||
## 3) 演算子・糖衣(P↔C 等価)
|
||||
|
||||
* パイプ |>: `a |> f(x)` → **そのまま**(記号は等価、空白最小化のみ)
|
||||
* セーフアクセス ?.: `o?.f` → **そのまま**
|
||||
* ディレクティブ /:: `/: name` → **そのまま**(意味を壊さず最小化)
|
||||
|
||||
## 4) セパレータ・自動挿入規約
|
||||
|
||||
* **C出力**時、**記号トークンの左右に英数IDが隣接**する場合は**1スペース**を強制挿入(`m$X` の誤読防止)。
|
||||
* セミコロンは P 側の規約準拠。C では**危険箇所のみ挿入**(§6の「ASI判定」参照)。
|
||||
|
||||
## 5) 変換アルゴリズム(疑似コード)
|
||||
|
||||
```text
|
||||
encode(P → C):
|
||||
lex P → tokens[]
|
||||
for t in tokens:
|
||||
if t in (StringLit, Comment*, RegexLit): emit t (verbatim); continue
|
||||
if t is Keyword and t.lexeme in MAP: emit MAP[t.lexeme] as SymbolToken
|
||||
else emit t (with WS-minify rules)
|
||||
apply ASI (only-when-necessary)
|
||||
attach inter-token trivia to sourcemap
|
||||
|
||||
decode(C → P):
|
||||
lex C → tokens[]
|
||||
for t in tokens:
|
||||
if t is SymbolToken and t.lexeme in INV_MAP: emit INV_MAP[t.lexeme] as Keyword
|
||||
else emit t
|
||||
restore WS/comments by sourcemap if available
|
||||
```
|
||||
|
||||
## 6) ASI(セミコロン自動挿入)判定(最小)
|
||||
|
||||
**挿入する**条件(どれか):
|
||||
|
||||
1. 次トークンが `}` / EOF
|
||||
2. 現トークンが `return (~r) / continue (~c) / break` 等で、**直後が行末**
|
||||
3. 構文上、次トークンが**先頭に来るべき**(例えば次が `box/$` 定義)
|
||||
|
||||
**挿入しない**:
|
||||
|
||||
* 行末でも、次トークンが `(` `[` `{` `.` `?.` `/:` のとき
|
||||
|
||||
## 7) EBNF(P→C 変換で必要なサブセット)
|
||||
|
||||
**目的**:可逆のための**字句と一部構文の境界**を定義。完全文法ではなく、トークン接合規則に必要な核のみ。
|
||||
|
||||
```ebnf
|
||||
Program = WS_NL* (Stmt WS_NL*)* ;
|
||||
|
||||
Stmt = BoxDecl
|
||||
| LocalDecl
|
||||
| ReturnStmt
|
||||
| ExprStmt
|
||||
;
|
||||
|
||||
BoxDecl = "box" Identifier BoxBody ;
|
||||
BoxBody = "{" (MemberDecl WS_NL*)* "}" ;
|
||||
|
||||
MemberDecl = ( FieldDecl | MethodDecl | StaticDecl ) ;
|
||||
|
||||
FieldDecl = ( "init" | "#" ) Identifier ( "=" Expr )? ";"? ;
|
||||
MethodDecl = Identifier ParamList Block ;
|
||||
StaticDecl = ( "static" | "S" ) MethodDecl ;
|
||||
|
||||
LocalDecl = ( "local" | "~l" ) Identifier ( "=" Expr )? ";"? ;
|
||||
|
||||
ReturnStmt = ( "return" | "~r" ) Expr? ";"? ;
|
||||
|
||||
ExprStmt = Expr ";"? ;
|
||||
|
||||
Expr = AssignExpr ;
|
||||
AssignExpr = OrExpr ( AssignOp OrExpr )? ;
|
||||
AssignOp = "=" | "+=" | "-=" | "*=" | "/=" ;
|
||||
|
||||
OrExpr = AndExpr ( "||" AndExpr )* ;
|
||||
AndExpr = PipeExpr ( "&&" PipeExpr )* ;
|
||||
|
||||
PipeExpr = TernaryExpr ( "|>" CallLike )* ;
|
||||
|
||||
TernaryExpr = NullsafeExpr ( "?" Expr ":" Expr )? ;
|
||||
|
||||
NullsafeExpr = MemberExpr | MemberExpr "?." Identifier | MemberExpr "/:" Identifier ;
|
||||
|
||||
MemberExpr = Primary ( ("." | "[") ... )? ; // 省略(可逆に影響しない部分)
|
||||
|
||||
CallLike = Identifier | Call ;
|
||||
|
||||
Call = Identifier "(" ArgList? ")" ;
|
||||
ArgList = Expr ("," Expr)* ;
|
||||
|
||||
Primary = Identifier
|
||||
| Literal
|
||||
| "(" Expr ")"
|
||||
;
|
||||
|
||||
Literal = IntLiteral | FloatLiteral | StringLit | RegexLit ;
|
||||
|
||||
Identifier = see §1.1 ;
|
||||
```
|
||||
|
||||
> **ポイント**
|
||||
> * `FieldDecl` は `init` と `#` を等価扱い(Cでは `#` に寄せる)
|
||||
> * `StaticDecl` は `static` と `S` を等価
|
||||
> * `LocalDecl` は `local` と `~l` を等価
|
||||
> * `ReturnStmt` は `return` と `~r` を等価
|
||||
> * `box` は `$` と等価(`BoxDecl`)
|
||||
|
||||
## 8) ソースマップ2.0(トークン粒度)
|
||||
|
||||
* **単一フォーマット(JSON Lines 推奨)**:各出力トークンに**元トークン範囲**と**トリビア**を付与。
|
||||
|
||||
```json
|
||||
{"out_i":42,"out_span":[l1,c5,l1,c6],"in_file":"foo.ny","in_span":[l10,c1,l10,c3],"trivia":{"lead":" ","trail":""}}
|
||||
```
|
||||
|
||||
* 例外/ログは**BoxID + トークン範囲**で P へ逆引き。
|
||||
|
||||
## 9) 衝突回避ルール(最重要)
|
||||
|
||||
* **ASCIIモード**:`~[A-Za-z]` は**保留記号**。Identifier と**絶対に一致しない**。
|
||||
* **記号の周囲**:`$ m` のように**必要時1スペース**(前後が英数IDの場合)。
|
||||
* **文字列/コメント/Regex**:**一切変換せず** verbatim。
|
||||
|
||||
## 10) 例(往復保証)
|
||||
|
||||
**P (Pretty)**
|
||||
|
||||
```nyash
|
||||
box NyashCompiler {
|
||||
compile(source) {
|
||||
local ast = me.parse(source)
|
||||
local mir = me.lower(ast)
|
||||
return me.codegen(mir)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**C (Compact ASCII)**
|
||||
|
||||
```
|
||||
$ NyashCompiler{
|
||||
compile(src){
|
||||
~l ast=m.parse(src)
|
||||
~l mir=m.lower(ast)
|
||||
~r m.codegen(mir)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**decode(C) → P** は上記Pと**等価**(空白/改行はソースマップで復元)。
|
||||
|
||||
---
|
||||
|
||||
## 実装メモ(すぐ書ける骨組み)
|
||||
|
||||
* レクサは **状態機械**:`DEFAULT / STRING / REGEX / COMMENT`
|
||||
* 置換は**辞書マッチ → 最長一致**(`box`→`$` を `Identifier` と衝突させない)
|
||||
* 出力時に**区切り挿入規則**を適用:`need_space(prev, next)`
|
||||
* ASI は §6 の規則のみ実装(Phase1)。曖昧時は**セミコロン挿入を選ぶ**。
|
||||
|
||||
---
|
||||
|
||||
これで **Phase 12.7-A(Week1)** の「P↔C 可逆・安全」まで一気に行けるにゃ。
|
||||
|
||||
次にやるなら:この仕様をそのまま基に**トークナイザのテストケース**(OK/NG 30本)を並べよう。
|
||||
@ -0,0 +1,57 @@
|
||||
# ANCP (AI-Nyash Compact Notation Protocol) 仕様書
|
||||
|
||||
このフォルダには、ANCP圧縮技法に関する全ての仕様書と技術文書が含まれています。
|
||||
|
||||
## 📄 ドキュメント一覧
|
||||
|
||||
### 🎯 中核仕様
|
||||
- **[ANCP-Token-Specification-v1.md](ANCP-Token-Specification-v1.md)** - ChatGPT5作成のトークン仕様書 v1.0
|
||||
- P(Pretty)→ C(Compact)変換の完全仕様
|
||||
- EBNF文法定義
|
||||
- トークン変換ルール
|
||||
- 衝突回避メカニズム
|
||||
|
||||
### 🔥 圧縮体系
|
||||
- **[ULTIMATE-AI-CODING-GUIDE.md](ULTIMATE-AI-CODING-GUIDE.md)** - 5層圧縮体系の統合ガイド
|
||||
- L0: Standard (通常のNyash)
|
||||
- L1: Pretty (整形済み)
|
||||
- L2: Compact (48%圧縮)
|
||||
- L3: Sugar (75%圧縮)
|
||||
- L4: Fusion (90%圧縮)
|
||||
|
||||
### ⚡ 糖衣構文
|
||||
- **[extreme-sugar-proposals.txt](extreme-sugar-proposals.txt)** - 極限糖衣構文の提案集
|
||||
- パイプライン演算子 `|>`
|
||||
- 安全アクセス演算子 `?.`
|
||||
- ディレクティブ記法 `/:`
|
||||
- その他の革新的構文
|
||||
|
||||
### 🔄 ツール仕様
|
||||
- **[sugar-formatter-tool.txt](sugar-formatter-tool.txt)** - 可逆フォーマッターの設計
|
||||
- 双方向変換の保証
|
||||
- ソースマップ2.0仕様
|
||||
- VSCode統合計画
|
||||
|
||||
### 📚 参考資料
|
||||
- **[compression-reference-libraries.md](compression-reference-libraries.md)** - 関連技術の調査
|
||||
- 既存圧縮ツールの比較
|
||||
- 学術研究の参照
|
||||
- 実装のヒント
|
||||
|
||||
## 🚀 実装優先順位
|
||||
|
||||
1. **Week 1**: ANCP-Token-Specification-v1 に基づく基本実装
|
||||
2. **Week 2**: 糖衣構文の統合
|
||||
3. **Week 3**: Fusion層(F)の追加
|
||||
4. **Week 4**: ツール・IDE統合
|
||||
|
||||
## 💡 重要な設計原則
|
||||
|
||||
- **完全可逆性**: P ↔ C ↔ F の変換で情報損失ゼロ
|
||||
- **安全性優先**: 文字列・コメント内は変換しない
|
||||
- **段階的導入**: まずCから、次にF層へ
|
||||
- **AI最適化**: トークン削減率を最大化
|
||||
|
||||
---
|
||||
|
||||
最新の仕様については、ANCP-Token-Specification-v1.md を参照してください。
|
||||
@ -0,0 +1,72 @@
|
||||
# Nyash文法改革仕様書
|
||||
|
||||
このフォルダには、Phase 12.7で決定されたNyash文法改革の仕様書が含まれています。
|
||||
|
||||
## 📄 ドキュメント一覧
|
||||
|
||||
### 📝 最終決定事項
|
||||
- **[grammar-reform-final-decision.txt](grammar-reform-final-decision.txt)** - 文法改革の最終決定
|
||||
- 予約語15個への削減
|
||||
- peek構文の導入
|
||||
- birth統一コンストラクタ
|
||||
- フィールド宣言の明示化
|
||||
|
||||
### 📐 技術仕様
|
||||
- **[grammar-technical-spec.txt](grammar-technical-spec.txt)** - 詳細な技術仕様書
|
||||
- 構文のBNF定義
|
||||
- パーサー実装ガイド
|
||||
- 後方互換性の考慮事項
|
||||
|
||||
## 🎯 文法改革の要点
|
||||
|
||||
### 15個の予約語
|
||||
```
|
||||
box, new, me, public, if, else, loop, break, continue,
|
||||
peek, return, import, from, birth, fn
|
||||
```
|
||||
|
||||
### 主要な変更点
|
||||
|
||||
#### 1. peek構文(switch/case代替)
|
||||
```nyash
|
||||
peek value {
|
||||
"hello" => print("Hi!")
|
||||
42 => print("The answer")
|
||||
else => print("Other")
|
||||
}
|
||||
```
|
||||
|
||||
#### 2. birth統一(コンストラクタ)
|
||||
```nyash
|
||||
box Life {
|
||||
init { name, energy }
|
||||
|
||||
birth(lifeName) { // すべてのBoxでbirth使用
|
||||
me.name = lifeName
|
||||
me.energy = 100
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 3. fn{}でFunctionBox作成
|
||||
```nyash
|
||||
local add = fn{a, b => a + b}
|
||||
```
|
||||
|
||||
#### 4. フィールド宣言の明示化
|
||||
```nyash
|
||||
box Person {
|
||||
init { name, age } // フィールドを明示的に宣言
|
||||
}
|
||||
```
|
||||
|
||||
## 🔄 実装状況
|
||||
|
||||
- ✅ 仕様決定完了
|
||||
- ✅ ChatGPT5による基本実装
|
||||
- 🔄 テスト作成中
|
||||
- 📅 完全移行(Phase 12.7-B)
|
||||
|
||||
---
|
||||
|
||||
詳細な実装については、implementation/フォルダを参照してください。
|
||||
@ -0,0 +1,153 @@
|
||||
# ANCP実装計画 - 統合ドキュメント
|
||||
|
||||
Date: 2025-09-03
|
||||
Status: Implementation Ready
|
||||
|
||||
## 🎯 概要
|
||||
|
||||
ANCP (AI-Nyash Compact Notation Protocol) - 90%可逆圧縮技法の実装計画。
|
||||
3人のAIアドバイザー(ChatGPT5、Claude、Gemini)の知見を統合。
|
||||
|
||||
## 📊 三者の評価まとめ
|
||||
|
||||
| アドバイザー | 評価 | 重要アドバイス |
|
||||
|-------------|------|----------------|
|
||||
| ChatGPT5 | 全面支持・即実行推奨 | 段階導入・ガードレール・事故防止 |
|
||||
| Claude | 革命的発明 | 実装順序・技術チェックリスト |
|
||||
| Gemini | パラダイムシフト | IDE統合・段階的導入・学術価値 |
|
||||
| Codex | 技術的厳密性重視 | AST正規化・トークン最適化・検証 |
|
||||
|
||||
## 🚀 統合実装計画(4週間)
|
||||
|
||||
### Week 1: 最小実装(P↔C)
|
||||
**ChatGPT5案 + Codex技術仕様**
|
||||
```bash
|
||||
# 実装内容
|
||||
- 固定辞書20語(ASCII記号マッピング)
|
||||
- トークンベース変換(正規表現不使用)
|
||||
- AST正規化(P*)ルール確立
|
||||
- nyashc CLI基本実装
|
||||
```
|
||||
|
||||
**成果物**:
|
||||
- [ ] BNF/EBNF仕様書
|
||||
- [ ] 最小エンコーダー/デコーダー
|
||||
- [ ] ラウンドトリップテスト
|
||||
- [ ] sourcemap.json生成
|
||||
|
||||
### Week 2: スマート化
|
||||
**Gemini提案 + ChatGPT5安全策**
|
||||
```bash
|
||||
# 機能追加
|
||||
- 文字列/コメント保護
|
||||
- セミコロン自動挿入
|
||||
- プロジェクト辞書(.ancprc)
|
||||
- エラー位置逆引き
|
||||
```
|
||||
|
||||
**成果物**:
|
||||
- [ ] 非変換ゾーン認識
|
||||
- [ ] 衝突検出メカニズム
|
||||
- [ ] LLMパック機能
|
||||
- [ ] デバッグ体験改善
|
||||
|
||||
### Week 3: F層導入(読み込み専用)
|
||||
**Codex仕様 + ChatGPT5段階導入**
|
||||
```bash
|
||||
# F層実装
|
||||
- 入力専用モード
|
||||
- MIR直行デコーダー
|
||||
- 等価性検証(MIRハッシュ)
|
||||
- 文法圧縮(Re-Pair/Sequitur)
|
||||
```
|
||||
|
||||
**成果物**:
|
||||
- [ ] F層パーサー
|
||||
- [ ] MIR等価性テスト
|
||||
- [ ] 圧縮率90%達成
|
||||
- [ ] Property-based testing
|
||||
|
||||
### Week 4: ツール・統合
|
||||
**Gemini IDE統合 + Codex CLI設計**
|
||||
```bash
|
||||
# 開発ツール
|
||||
- VS Code拡張(ホバー表示)
|
||||
- フォーマッター統合
|
||||
- ベンチマーク自動化
|
||||
- CI/CD統合
|
||||
```
|
||||
|
||||
**成果物**:
|
||||
- [ ] VS Code拡張α版
|
||||
- [ ] nyash fmt統合
|
||||
- [ ] ベンチマークCSV
|
||||
- [ ] ドキュメント完成
|
||||
|
||||
## ⚠️ 設計原則(赤線)
|
||||
|
||||
### ChatGPT5の三原則
|
||||
1. **常にPを正典** - C/Fは生成物
|
||||
2. **トークン変換で可逆** - 正規表現は使わない
|
||||
3. **Fはまず入力専用** - 段階的に拡張
|
||||
|
||||
### Codexの技術要件
|
||||
1. **AST正規化必須** - P*の厳密定義
|
||||
2. **トークン最適化** - GPT/Claude向け
|
||||
3. **MIR等価性証明** - ハッシュ一致
|
||||
|
||||
### Geminiの実用要件
|
||||
1. **IDE統合最優先** - 開発体験重視
|
||||
2. **段階的導入** - fusion{}ブロック
|
||||
3. **意味論的圧縮** - 将来への道筋
|
||||
|
||||
## 📈 測定指標(KPI)
|
||||
|
||||
| 指標 | 目標 | 測定方法 |
|
||||
|------|------|----------|
|
||||
| 圧縮率 | 90% | トークン数比較 |
|
||||
| 可逆性 | 100% | ラウンドトリップテスト |
|
||||
| MIR等価 | 100% | ハッシュ一致率 |
|
||||
| 変換速度 | <100ms/1000行 | ベンチマーク |
|
||||
| LLM効率 | 2-3倍 | コンテキスト拡張率 |
|
||||
|
||||
## 🛠️ 実装優先順位
|
||||
|
||||
### 今すぐ(Day 1-3)
|
||||
1. BNF/EBNF仕様書作成
|
||||
2. 20語辞書決定
|
||||
3. 最小プロトタイプ
|
||||
|
||||
### 第1週(Day 4-7)
|
||||
1. トークナイザー拡張
|
||||
2. 基本CLI実装
|
||||
3. CIテスト準備
|
||||
|
||||
### 第2週以降
|
||||
- Week 2-4の計画通り実行
|
||||
|
||||
## 📚 関連ドキュメント
|
||||
|
||||
### 設計・仕様
|
||||
- [grammar-reform-final-decision.txt](archive/grammar-reform-final-decision.txt)
|
||||
- [extreme-sugar-proposals.txt](extreme-sugar-proposals.txt)
|
||||
- [ULTIMATE-AI-CODING-GUIDE.md](ULTIMATE-AI-CODING-GUIDE.md)
|
||||
|
||||
### AIフィードバック
|
||||
- [ChatGPT5実装アドバイス](ai-feedback/chatgpt5-ancp-implementation-advice.md)
|
||||
- [Claude技術分析](ai-feedback/codex-ancp-response.md)
|
||||
- [Gemini革命的評価](ai-feedback/gemini-ancp-response.md)
|
||||
|
||||
### 実装ガイド
|
||||
- [即座実装ガイド](ai-feedback/quick-implementation-guide.md)
|
||||
- [技術チェックリスト](ai-feedback/technical-checklist.md)
|
||||
- [実用的洞察](ai-feedback/actionable-insights.md)
|
||||
|
||||
## 🎉 結論
|
||||
|
||||
**全AIアドバイザーが「今すぐやるべき」と評価!**
|
||||
|
||||
ChatGPT5の事故防止ガードレール、Codexの技術的厳密性、Geminiの実用性を統合し、**4週間で90%圧縮を実現**する。
|
||||
|
||||
---
|
||||
|
||||
**次のアクション**: BNF/EBNF仕様書作成開始!
|
||||
@ -0,0 +1,68 @@
|
||||
# 実装ガイド・計画
|
||||
|
||||
このフォルダには、Phase 12.7の実装に関する計画とチェックリストが含まれています。
|
||||
|
||||
## 📄 ドキュメント一覧
|
||||
|
||||
### 🚀 実装計画
|
||||
- **[ANCP-IMPLEMENTATION-PLAN.md](ANCP-IMPLEMENTATION-PLAN.md)** - 統合実装計画
|
||||
- 4週間の段階的実装スケジュール
|
||||
- 全AIアドバイザーの知見を統合
|
||||
- KPI(測定指標)の定義
|
||||
- リスクと対策
|
||||
|
||||
### 🔧 チェックリスト
|
||||
- **[implementation-final-checklist.txt](implementation-final-checklist.txt)** - 実装チェックリスト
|
||||
- 文法改革の実装項目
|
||||
- ANCP実装の必須タスク
|
||||
- テスト・検証項目
|
||||
- ツール統合タスク
|
||||
|
||||
## 📅 実装スケジュール概要
|
||||
|
||||
### Week 1: 基礎実装(P↔C)
|
||||
- [ ] BNF/EBNF仕様書完成
|
||||
- [ ] 20語の固定辞書実装
|
||||
- [ ] トークンベース変換器
|
||||
- [ ] 基本的なCLI(nyashc)
|
||||
- [ ] ラウンドトリップテスト
|
||||
|
||||
### Week 2: スマート化
|
||||
- [ ] 文字列・コメント保護
|
||||
- [ ] セミコロン自動挿入
|
||||
- [ ] プロジェクト辞書(.ancprc)
|
||||
- [ ] エラー位置逆引き
|
||||
- [ ] LLMパック機能
|
||||
|
||||
### Week 3: F層導入
|
||||
- [ ] Fusion層パーサー(読み込み専用)
|
||||
- [ ] MIR直行デコーダー
|
||||
- [ ] 等価性検証(MIRハッシュ)
|
||||
- [ ] 90%圧縮達成
|
||||
- [ ] Property-based testing
|
||||
|
||||
### Week 4: ツール統合
|
||||
- [ ] VS Code拡張(ホバー表示)
|
||||
- [ ] フォーマッター統合
|
||||
- [ ] ベンチマーク自動化
|
||||
- [ ] CI/CD統合
|
||||
- [ ] ドキュメント完成
|
||||
|
||||
## 🎯 次のアクション
|
||||
|
||||
1. **ANCP-Token-Specification-v1.md** に基づくトークナイザー実装
|
||||
2. テストケース(OK/NG 30本)の作成
|
||||
3. 最小プロトタイプの開発開始
|
||||
|
||||
## 📊 成功指標
|
||||
|
||||
| 指標 | 目標値 | 測定方法 |
|
||||
|------|--------|----------|
|
||||
| 圧縮率 | 90% | トークン数比較 |
|
||||
| 可逆性 | 100% | ラウンドトリップテスト |
|
||||
| MIR等価 | 100% | ハッシュ一致率 |
|
||||
| 変換速度 | <100ms/1000行 | ベンチマーク |
|
||||
|
||||
---
|
||||
|
||||
実装を開始する前に、必ずANCP-IMPLEMENTATION-PLAN.mdを熟読してください。
|
||||
Reference in New Issue
Block a user