Vnano Engine のビルド/使用方法
Vnano は、C言語系のシンプルな文法を持つスクリプト言語です。 Vnano のインタープリタは、特にJava®製のアプリケーション内に組み込んで使う事を想定して開発されています。 Vnano を用いる事で、自作アプリ上でスクリプトを実行可能になるため、カスタマイズ性の高いアプリの開発が可能になります。
ここでは、Vnano の特徴を紹介しつつ、実際にVnanoのスクリプトエンジンをビルドして使用してみましょう。
ライセンス
Vnano のインタープリタである「 Vnano Engine 」はオープンソースで、MITライセンスの下でリリースされています。
以下では、実際に Vnano Engine ソースコードを GitHub 上のリポジトリから入手し、ビルドして使用します。
必要なもの
- Java Development Kit (バージョン 8 以降が必須、最新版の Java 18 は対応済み)
- Git
ビルド方法
まずはじめに、Vnano Engine をビルドしましょう。
Microsoft Windows での場合
Git でソースコードリポジトリを clone して、同梱されているバッチファイル「 build.bat 」を実行します:
cd vnano
.\build.bat
すると、ビルド結果のJARファイル「 Vnano.jar 」が生成されます。
Linux 等での場合
Git でソースコードリポジトリを clone して、同梱されているシェルスクリプト「 build.sh 」を実行します:
cd vnano
sudo chmod +x ./build.sh
./build.sh
すると、ビルド結果のJARファイル「 Vnano.jar 」が生成されます。
Apache Ant を使用する場合
Ant 用のビルドファイルも同梱されています:
cd vnano
ant -f build.xml
すると、ビルド結果のJARファイル「 Vnano.jar 」が生成されます。
アプリケーションへの組み込み/使用方法
アプリケーションのコンパイル/実行方法
続いて、実際にアプリケーションに Vnano Engine を組み込んで使ってみましょう。
ここでは例として、非常に単純な内容のアプリケーションを作成します。 ソースコードはリポジトリ内に「 ExampleApp1.java 」として同梱されています:
- ExampleApp1.java -上記のコードは、以下のようにコンパイルできます:
javac -cp .:Vnano.jar ExampleApp1.java (For Linux)
そして以下のように実行します:
java -cp .:Vnano.jar ExampleApp1 (For Linux)
実行結果は:
上記の ExampleApp1 アプリは、Vnano Engine を用いてスクリプトを処理しますが、 そのスクリプトは 1.2 + 3.4 の値( = 5.6 )を計算する内容になっています。 従って、無事 Vnano Engine を使って、スクリプトを正しく実行できた事がわかります。
Vnano Engine の各機能に関する詳細は、Vnano Engine の主な機能 のページをご参照ください。
アプリケーションのJARファイルの作成方法
続いて、上で実行した ExampleApp1 アプリケーションを、JARファイル化してみましょう。
それには、まずマニフェストファイル「 manifest.txt 」を作成して、その中で「 Vnano.jar 」にクラスパスを通します:
- manifest.txt -Class-Path: . Vnano.jar
(!!! 重要: このファイルの内容は空行で終わっている必要があります !!!)
なお、もし「 Vnano.jar 」をどこか別の場所(例えば lib フォルダ内など)に配置する事を想定している場合は、 上記の Class-Path セクションに書くパスも適切に合わせてください(「Class-Path: . lib/Vnano.jar」など)。
以上が済んだら、以下のようにJARファイルを生成します:
生成したJARファイルは、以下のように実行できます:
主な機能と仕様
上でも見てきたように、Vnano Engine を用いると、アプリ上で式やスクリプトを実行する事ができます。
加えて、Javaで記述した任意のクラスのフィールドやメソッドを Vnano Engine に登録して、式やスクリプト内からアクセスする事もできます。さらに、そのようなフィールド/メソッド提供用のクラスを独立なファイルの形で実装して(「プラグイン」と呼びます)、動的に読み込む事もできます。
Javaで記述したクラスの代わりに、スクリプトファイルとして変数/関数群を定義して、それを「ライブラリ スクリプト」として読み込んで使う事もできます。
このように、Vnano Engine の色々な機能を使うと、カスタマイズ性の高いアプリを開発する事ができます (具体例としては、プログラム関数電卓ソフトの RINPn 」をご参照ください)。
各機能の詳細については、Vnano Engine の主な機能と用例 のページをご参照ください。
また、Vnano Engine の全メソッドの一覧/詳細説明や、オプション類などについては、 こちらの仕様書 のページをご参照ください。
言語としての Vnano
Vnano Engine 上で実行可能なスクリプト言語の名前は、そのまま「 Vnano 」と言います。 Vnano は C言語系のシンプルな文法を持つ言語です。例えば:
上記コードのような具合です。
Vnano の構文や言語機能について詳しくは、「 言語としての Vnano 」のページをご参照ください。
処理速度
Vnano は、データ解析ソフトや計算ソフト、および可視化ソフトなど、演算量の多い用途も想定して開発されています。 そのため、スクリプト言語としては、処理速度は恐らくそれなりに速い部類に入ります。
例えば、一般のノートPC上において、理想条件下での上限値として、スカラ(非配列)演算で約7億回/秒(700MFLOPS)、 配列演算で約150億回/秒(15GFLOPS)程度の実測スコアが得られています。
計測方法やパフォーマンスチューニングなどに関する詳細は「 パフォーマンス計測と解析 」の項目をご参照ください。
※ OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。
※ Windows は、米国 Microsoft Corporation の米国およびその他の国における登録商標です。
※ Linux は、Linus Torvalds 氏の米国およびその他の国における商標または登録商標です。
※ その他、文中に使用されている商標は、その商標を保持する各社の各国における商標または登録商標です。