言語リファレンス¶
このセクションでは、Graphcal のすべての言語機能について形式的なドキュメントを提供します。
概要¶
Graphcal は、計算の**有向非巡回グラフ(DAG)**を中心に構築された、工学計算のためのドメイン固有言語です。すべての .gcl ファイルは、パラメーター(入力)、ノード(計算された値)、定数を記述し、それらは明示的な参照によって接続されます。
この言語は階層化された型システムを持ちます:
| 層 | 機能 | 目的 |
|---|---|---|
| 1 | プリミティブ | プリミティブ値型(正規の一覧) |
| 2 | 次元 | 物理次元の代数(コンパイル時の型) |
| 3 | 単位 | 次元に付随する値レベルのスケーリング係数 |
| 4 | 代数的データ型 | コンストラクター、ペイロード、パターンマッチング |
| 5 | インデックス | コレクションのための有限ラベル集合 |
| 6 | DAG ブロック | dag ブロックと include による再利用可能な計算 |
リファレンスページ¶
-
計算モデル
DAG の意味論、
param/node/const node、@シジル。 -
型システム
実体の完全な階層化、正規のプリミティブ一覧、および 明示的な変換。
-
次元と単位
次元の代数、単位の定義、変換、プレリュード。
-
代数的データ型
単一コンストラクター型と複数コンストラクター型、
match式、およびジェネリクス。 -
インデックス
名前付き、座標、および
Fin(N)インデックス。for、scan、およびunfold。 -
DAG ブロック
dagブロックとincludeによる再利用可能な計算。 -
Extern 関数(プラグイン)
import pluginブロック: 次元シグネチャが宣言された、 外部から提供される関数。 -
式
演算子、優先順位、
if/else、リテラル。 -
複数ファイルプロジェクト
import宣言、パッケージ依存関係、エイリアス、循環検出。 -
アサーションと属性
assert宣言、許容誤差チェック、#[assumes(...)]。 -
プロット
plot宣言、チャートの種類、インタラクティブな可視化。 -
組み込みリファレンス
プレリュードの次元、単位、定数、および関数。