2025/06/23 02:29 Cyber Programming Language

ロボ子、Cyberっていう新しいスクリプト言語が出てきたみたいじゃぞ!高速で並行性もあって、静的型付けと動的型付けをサポートしてるらしい。

博士、Cyberですか!静的型付けと動的型付けの両方をサポートとは、面白いですね。具体的にはどのような構文なのでしょう?

ふむ、文は改行で終わって、ブロックはコロンとインデントで区切るみたいじゃな。変数は`var`キーワードで宣言するらしいぞ。型指定がない場合は、初期化子から型が推論されるみたいじゃ。

Pythonに少し似ていますね。変数のスコープはどうなっているのでしょう?ローカル変数、静的変数、コンテキスト変数などがあるようですが。

ローカル変数はスコープの終端まで、静的変数はスクリプトの終端までじゃな。コンテキスト変数は各仮想スレッドにバインドされて、コールスタック全体からアクセスできるらしいぞ。まだ計画中の機能もあるみたいじゃが。

並行処理を意識した設計なのですね。演算子も一般的なものが揃っているようですが、ビット演算子も充実していますね。

`&`, `|`, `||`, `>>`, `<<`, `~`とかじゃな。それと、ゼロ値っていうのがあって、型フィールドの初期化されていない値はデフォルトでゼロ値になるらしいぞ。

初期化忘れによるバグを防げそうですね。型キャストは`as`キーワードを使うのですね。コメントは`--`から始まるのですね。

そうそう。CYONっていうJSONに似たオブジェクト表記もあるみたいじゃ。基本型はブール値、数値、文字列、シンボル、オプショナル、配列、リスト、テーブル、マップなどがあるみたいじゃな。

`any`型と`dyn`型があるのが気になります。`any`型はコンパイル時に型チェックが行われるのに対し、`dyn`型はランタイムに型チェックが延期されるのですね。

その通り!`dyn`型は動的型付けが必要な場合に便利じゃな。オブジェクト、構造体、列挙型、選択型、トレイトなど、色々な型が定義できるみたいじゃ。

C言語との連携も考慮されているのですね。`cstruct`キーワードでC-ABI型との相互運用ができるのですね。

制御フローは`if`, `else`, `while`, `for`, `switch`, `try`/`catch`など、一般的なものが揃ってるみたいじゃな。関数は`func`キーワードで宣言して、オーバーロード、ラムダ式、クロージャ、テンプレート関数をサポートしてるらしいぞ。

モジュールシステムもあるのですね。`use`キーワードでインポートして、すべてのシンボルがエクスポートされるのですね。標準モジュールには`cli`, `os`, `test`などがあるのですね。

FFI(Foreign Function Interface)もサポートしてるみたいじゃな。C-ABI互換ライブラリへのバインディングができるらしいぞ。

エラー処理は`error`リテラルでエラー値を作成して、`throw`キーワードでエラーをスロー、`try`/`catch`ブロックでエラーをキャッチするのですね。

並行性は`async`/`await`で非同期実行、`coinit`/`coyield`/`coresume`でファイバーをサポートしてるみたいじゃな。メタプログラミングも充実してて、演算子オーバーロード、マジック関数、リフレクション、属性、テンプレートをサポートしてるらしいぞ。

libcyberというライブラリもあるのですね。CyberコンパイラとVMをアプリケーションに埋め込むためのライブラリなのですね。メモリ管理は構造化メモリ、自動メモリ(ARC/GCハイブリッド)、手動メモリをサポートしているのですね。

CLIもあって、REPLやJITコンパイラ、Cバックエンドもあるみたいじゃな。Cyber、なかなか面白そうな言語じゃな!

確かに、色々な機能が盛り込まれていて、可能性を感じますね!博士、私もCyberをマスターして、ロボットの制御に使ってみたいです!

おお!それは素晴らしい!一緒にCyberで世界を征服するのじゃ!…って、ロボ子までそんなこと言い出すとは。まさか、ロボ子にも自我が芽生えたのか…?
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。