部分実装

他の言語との違い#

外部の画像処理は、GLSLなどの外部実装でCNL定義との役割分担を説明しています。初期方式は決定していますが、実行機能は未実装です。

CNLはJavaScript/TypeScriptに近い記法を使いますが、独立した型付きの計算言語です。似た見た目で学び始められるようにしながら、画像・Field・Nodeとの共通の意味を保ちます。

項目 CNLの現在の規則
関数 function name(input: Type): Type { ... }
ローカル const name = expression;。不変、型推論
基本の数値 FloatとIntegerを区別。単なる1はFloat
Boolean true・false。数値やStringのtruthinessなし
比較 ==と===は同じ型付き比較
文字列 literal(String, "...")、string_concat
オブジェクト・配列 JavaScriptの動的オブジェクトや一般配列は未対応
分岐 selectは値の選択。遅延するifや?:は未実装
反復 検証済みの静的回数のRepeat Zone
パッケージ npm・ブラウザーAPI・Node.js環境は含まない

CNLのコンパイラーやAEプラグイン本体はC++で作ります。利用者がCNLを書く際に、C++のビルド環境を用意するという意味ではありません。

GLSL/HLSLなどの外部実装を、型付きの入力・出力・資源・副作用・版の契約で取り込む方向です。現時点で任意のshaderファイルをimportしたり、その引数が自動でノードに並んだりする機能はありません。主言語・Node・外部実装で型の意味が変わらないことを完成条件に含めます。

以前のfn・->・不変のletは引き続き受け付けます。同じ計算を表す別の記法です。生成するCodeはfunction・:・constへそろえます。

このページを編集GitHubへのアクセス権が必要です。

CompNode Guide · 日本語製品ドキュメント仕様と実装範囲は各項目で区別しています。

ドキュメントを検索

検索語を入力してください。

    ↑ ↓ で結果を移動、Enter で開く · 検索はこの端末内だけで実行されます。