プログラミング言語 VCSSL
特徴
リニアングラフ3D&2Dの自動処理用言語にも採用しているため、データを加工してプロットしたり、それを自動で大量のファイルに行ったりするのに便利です(ユーザー層の大多数がそういった用途です)。
また、簡易用途に焦点を絞ったものですが、GUIや2次元 & 3次元グラフィックス機能も標準でサポートしているため、ちょっとした画面を備えたツールを作ったりするのにも使えます。
処理速度面では、インタープリタ式でありつつ、毎秒1億演算(100 MFLOPS)を超えるくらいは発揮可能で、それなりの計算量の用途もこなせます。 実際にコードアーカイブでは計算系のコード例も公開しています。
スクリプトエンジン Vnano
特徴
言語仕様はVCSSLのサブセットで、C言語系のシンプルな文法によるスクリプト処理機能を提供します。 後述の Exevalator よりも実装サイズは大きいですが、その代わり機能数が多く、適材適所の使い分けを想定しています。
処理速度面では、中間コードの実行レイヤーにベクトルレジスタマシン型のVMを採用する事により、最大で数百MFLOPS〜数GFLOPSクラスの演算速度を発揮します。
| 公式サイト | ダウンロード | ソースコード リポジトリ | コンセプト解説記事 | アーキテクチャ解説記事 |
式計算ライブラリ Exevalator
特徴
各言語版ごとに、実装は単一ファイルのみに収まっており、開発アプリケーションのソースコードフォルダ内に放り込むだけで、簡単に使う事ができます。 ライセンスも実質著作権フリーである Unlicense or CC0 です。
また、実装がコンパクトでありつつ、処理速度もそれなりに重視しており、数百MFLOPSクラス(概ねVnanoの半分程度)の処理速度を発揮します。
| 公式サイト | ダウンロード | ソースコード リポジトリ | コンセプト解説記事 | アーキテクチャ解説記事 |
ベクトルレジスタ中間言語 VRIL
特徴
VRILは「Vector Register Intermediate Language(ベクトルレジスタ中間言語)」の略で、 名称の通り、ベクトル単位の仮想レジスタ/メモリーを備える、レジスタマシン型のVM実装を前提に仕様設計されています。
VRILの命令セットはほぼ全てが仮想的なSIMD命令で構成されているため、ベクトル演算では命令実行オーバーヘッドに対して実演算時間の比率が高められ、高い性能を実現できます。 また、シンプルな三番地コードの形式であるため最適化が容易で、スカラ演算性能も高めやすい側面を備えています。
VRILは将来的にVCSSLの処理系内で採用する予定で、現在はそのサブセットであるVnanoにおいて先行して採用しています。
ベクトルレジスタ仮想マシン VRIL-VM
特徴
データ解析ソフトウェアなどでの使用も見込んで、数値のスカラ演算およびベクトル演算の性能を共に重視しており、 そのためベクトルプロセッサ風の命令を備えるレジスタマシン方式のアーキテクチャを採用しています。 具体的には、中間コード言語にSIMD命令主体のVRILを採用し、レジスタやメモリーのデータ単位も全てベクトル(配列)となっています。
実測性能では、全体がJava言語のみで実装された中間コードインタープリタでありながら、倍精度浮動小数点演算で数百MFLOPS(スカラ演算)〜 数GFLOPS(ベクトル演算)クラスのピーク性能を発揮します。 これにより、プラットフォーム非依存性やアプリケーションへの組み込みやすさと、数値演算パフォーマンスとの間の高い妥協点を実現します。
VRIL-VMは将来的にVCSSLの処理系内で採用する予定で、現在はそのサブセットであるVnanoにおいて先行して採用・開発しています。
| 参照: Vnano処理系のアーキテクチャ | 実装コード |
VRIL出力コンパイラ LexicalCraft
特徴
特にアプリケーション組み込み用途を想定したもので、構造上は一般的な字句/構文/意味解析器およびコード生成処理の4ステージ(最適化はVM側)を備えつつ、 カスタマイズ性を確保するために各ステージの分離性を重視し、複雑性や実装規模もコンパクトに抑える事を目指したコンパイラです。
また、アプリケーション内に組み込むという用途上、コンパイル時でのスタックオーバーフロー等の発生を回避しやすいよう、 構文解析器(パーサ)を含む全ステージを非再帰処理のみで実装する設計を採用しています。
LexicalCraft は現在、Vnanoのスクリプトエンジン内部の中間コードコンパイラ層において採用・開発しています。
ASTインタープリタ GARNET
特徴
アーキテクチャは広義のASTインタープリタに類するもので、 ポリモーフィズムで機能分化した演算オブジェクトの集合を、抽象構文木と同型のツリー構造となるよう参照リンクで繋ぐ事で、コードを比較的高速に実行します。
GARNETは、VCSSL最初期の頃から処理系の実行層として継続採用してきたものですが、現在は性能向上が鈍化し、実装も複雑化しつつあるため、 将来のVCSSL処理系では別方式のVRIL-VMへ置き換わる予定です。
その後はGARNETは互換エンジンの役割を担う予定であるため、現在は拡張方向での開発よりも、修正やメンテナンスを中心として安定性を固める方向の開発に収束しています。
簡易3D描画ライブラリ RINEARN-X
特徴
ベクトルや変換行列等、一般に3Dに必要となる数学的な記述を要求せずに、データ可視化などの比較的単純な3DCGを、手軽に描画する事を目指した、簡易用途向けの3D描画ライブラリです。 もともとは リニアングラフ3D の描画エンジンから派生したもので、 現在は VCSSL の 3DCG機能 の下層レイヤーなどに採用しています。
RINEARN-X は、2009年頃に外部への一般公開を行ったものの、 その後の公開バージョンおよびドキュメントの更新やメンテナンスは、現在停止中となっています。 これはVCSSLの開発に伴って大幅な改修を行ったためで、 将来的には、再び一般公開に向けたバージョンおよびドキュメントの再整備を計画しています( そのタイミングにおいて「 BlockMount3D 」に改称予定です )。
その他
先行開発版はこちら
VCSSLの実行環境などでは、開発途中の次期バージョンや、特定の機能を試験的に実装したバージョンなどを、先行開発版として試験公開する場合があります。 詳細はリンク先ページをご参照ください。
ソースコード等はこちら (GitHub)
オープンソース開発のものについては、GitHub上でソースコードのリポジトリを公開しています。
※ C# は、米国 Microsoft Corporation の米国およびその他の国における登録商標です。
※ Rustは、Mozilla Foundation の米国及びその他の国における登録商標です。