diff --git a/docs/nyash_core_concepts.md b/docs/nyash_core_concepts.md index 1b5abeb8..d8385bac 100644 --- a/docs/nyash_core_concepts.md +++ b/docs/nyash_core_concepts.md @@ -288,6 +288,7 @@ static box Main { - **基本型** - **`StringBox`**: 文字列操作 - **`IntegerBox`**: 整数値 + - **`FloatBox`**: 浮動小数点数(Phase 9.75h追加) - **`BoolBox`**: 真偽値 - **`NullBox`**: null値 @@ -309,9 +310,11 @@ static box Main { - **`WebConsoleBox`**: Webコンソール - **`WebCanvasBox`**: Web Canvas操作 -- **通信系** +- **通信・ネットワーク系** - **`P2PBox`**: P2P通信 - **`SimpleIntentBox`**: 簡単なインテント通信 + - **`SocketBox`**: TCP/IPソケット通信(Phase 9.75i追加) + - **`BufferBox`**: バイナリバッファ操作(Phase 9.75i追加) **注意**: using nyashstdで標準ライブラリ経由でのアクセスも可能です。 @@ -426,6 +429,20 @@ r3 = await f3 } ``` +- **静的boxメソッド呼び出し(Phase 9.75i実装):** + ```nyash + static box ProxyServer { + static port = 8080 // 静的フィールド + + static main() { + print("Starting proxy on port " + ProxyServer.port.toString()) + } + } + + // 呼び出し + ProxyServer.main() // ✅ 静的メソッド直接呼び出し可能 + ``` + - **静的関数の定義/呼び出し:** ```nyash static function Math.min(a, b) { @@ -443,30 +460,46 @@ r3 = await f3 } ``` -## 11. 実行バックエンド選択 (2025-08-14追加) +## 11. 実行バックエンド選択とハイブリッド戦略 (2025-08-16更新) -Nyashは3つの実行方式をサポート。用途に応じて選択可能: +Nyashは4つの実行方式をサポート。**インタープリターは開発だけでなく本番でも実用的**(Pythonのように): +### 🌟 **インタープリター併用戦略** +``` +開発時: インタープリター(即時実行・デバッグ・非同期フル対応) +本番時: インタープリター(多くのユースケースで十分高速) + OR + コンパイラ(性能要求時) +配布時: AOT native(最高性能) +Web時: WASM(ブラウザ対応) +``` + +### 実行方法 ```bash -# インタープリター実行(開発・デバッグ重視) +# インタープリター実行(開発・本番両対応) nyash program.nyash -# VM実行(高速実行・本番環境) +# VM実行(高速実行) nyash --backend vm program.nyash -# WASM生成(Web配布・最高性能) +# WASM生成(Web配布) nyash --compile-wasm program.nyash # ベンチマーク実行(性能比較) nyash --benchmark --iterations 100 ``` -**性能比較(実行速度):** -- **WASM**: 13.5倍高速化(真の実行性能) -- **VM**: 20.4倍高速化(高速実行・本番環境) -- **Interpreter**: ベースライン(開発・デバッグ重視) +### **性能比較(実行速度):** +- **WASM**: 13.5倍高速化 +- **VM**: 20.4倍高速化 +- **Interpreter**: ベースライン(多くの場合十分高速) +- **LLVM AOT**: 100-1000倍高速化(Phase 10計画中) -**注意**: 280倍高速化はコンパイル性能(ビルド時間)であり、実行性能とは異なります。 +### **インタープリターの価値:** +- **即時実行**: コンパイル不要で素早い開発サイクル +- **完全な非同期**: Rust async/awaitで真の並行処理 +- **デバッグ容易**: 実行時情報の完全把握 +- **実用的性能**: PythonやRubyが証明する十分な速度 詳細: [docs/execution-backends.md](execution-backends.md) @@ -478,17 +511,20 @@ nyash --benchmark --iterations 100 --- -**最終更新: 2025年8月16日** - **Phase 9.75h完了記念 大幅更新** -- 🌟 **自動リテラル変換実装**: 文字列・数値・真偽値の自動Box変換(革命的ユーザビリティ向上) +**最終更新: 2025年8月16日** - **インタープリター併用戦略統合** +- 🌟 **インタープリター併用戦略**: 開発・本番両対応の実用的実行モデル +- ✅ **静的boxメソッド呼び出し追加**: Phase 9.75i実装機能 +- ✅ **ビルトインBox追加**: FloatBox, SocketBox, BufferBox +- ✅ **実行バックエンド説明更新**: インタープリターの本番価値明記 + +**前回の革命的改善(Phase 9.75h):** +- 🌟 **自動リテラル変換実装**: 文字列・数値・真偽値の自動Box変換 - ✅ **using nyashstd完全実装**: 標準ライブラリアクセス機能完成 - ✅ **birth構文追加**: 「生命をBoxに与える」統一コンストラクタ -- ✅ **現代的構文例追加**: 最新機能を活用した実用コード例 -- ✅ **性能数値修正**: WASM 13.5倍(実行性能)・280倍(コンパイル性能) -- ✅ **ビルトインBoxリスト最新化**: 実装済み17種類のBox完全リスト -### 🚀 **今回の革命的改善** -**Everything is Box哲学 + 使いやすさ** を完全両立達成! -- **Before**: `local text = new StringBox("Hello")`(冗長) -- **After**: `local text = "Hello"`(シンプル、自動変換) -- **結果**: パーサーレベル変換により実行時オーバーヘッドゼロ +### 🚀 **Nyashの実用的価値** +**Everything is Box哲学 + 使いやすさ + 実用的性能** の三位一体! +- **開発時**: インタープリターで即時実行・完全デバッグ +- **本番時**: インタープリター(十分高速)またはコンパイラ(最高性能) +- **将来**: LLVM AOTで100-1000倍高速化(Phase 10)