Vnano Engine のビルド/使用方法

Vnano は、C言語系のシンプルな文法を持つスクリプト言語です。 Vnano のインタープリタは、特にJava®製のアプリケーション内に組み込んで使う事を想定して開発されています。 Vnano を用いる事で、自作アプリ上でスクリプトを実行可能になるため、カスタマイズ性の高いアプリの開発が可能になります。

ここでは、Vnano の特徴を紹介しつつ、実際にVnanoのスクリプトエンジンをビルドして使用してみましょう。

- 目次 -

ライセンス

Vnano のインタープリタである「 Vnano Engine 」はオープンソースで、MITライセンスの下でリリースされています。

以下では、実際に Vnano Engine ソースコードを GitHub 上のリポジトリから入手し、ビルドして使用します。

必要なもの

ビルド方法

まずはじめに、Vnano Engine をビルドしましょう。

Microsoft Windows での場合

Git でソースコードリポジトリを clone して、同梱されているバッチファイル「 build.bat 」を実行します:

git clone https://github.com/RINEARN/vnano
cd vnano
.\build.bat

すると、ビルド結果のJARファイル「 Vnano.jar 」が生成されます。

Linux 等での場合

Git でソースコードリポジトリを clone して、同梱されているシェルスクリプト「 build.sh 」を実行します:

git clone https://github.com/RINEARN/vnano
cd vnano
sudo chmod +x ./build.sh
./build.sh

すると、ビルド結果のJARファイル「 Vnano.jar 」が生成されます。

Apache Ant を使用する場合

Ant 用のビルドファイルも同梱されています:

git clone https://github.com/RINEARN/vnano
cd vnano
ant -f build.xml

すると、ビルド結果のJARファイル「 Vnano.jar 」が生成されます。

アプリケーションへの組み込み/使用方法

アプリケーションのコンパイル/実行方法

続いて、実際にアプリケーションに Vnano Engine を組み込んで使ってみましょう。

ここでは例として、非常に単純な内容のアプリケーションを作成します。 ソースコードはリポジトリ内に「 ExampleApp1.java 」として同梱されています:

- ExampleApp1.java -
ExampleApp1.java

上記のコードは、以下のようにコンパイルできます:

javac -cp .;Vnano.jar ExampleApp1.java    (For Windows)
javac -cp .:Vnano.jar ExampleApp1.java    (For Linux)

そして以下のように実行します:

java -cp .;Vnano.jar ExampleApp1    (For Windows)
java -cp .:Vnano.jar ExampleApp1    (For Linux)

実行結果は:

result: 5.6

上記の ExampleApp1 アプリは、Vnano Engine を用いてスクリプトを処理しますが、 そのスクリプトは 1.2 + 3.4 の値( = 5.6 )を計算する内容になっています。 従って、無事 Vnano Engine を使って、スクリプトを正しく実行できた事がわかります。

Vnano Engine の各機能に関する詳細は、Vnano Engine の主な機能 のページをご参照ください。

アプリケーションのJARファイルの作成方法

続いて、上で実行した ExampleApp1 アプリケーションを、JARファイル化してみましょう。

それには、まずマニフェストファイル「 manifest.txt 」を作成して、その中で「 Vnano.jar 」にクラスパスを通します:

- manifest.txt -
Main-Class: ExampleApp1
Class-Path: . Vnano.jar
(!!! 重要: このファイルの内容は空行で終わっている必要があります !!!)

なお、もし「 Vnano.jar 」をどこか別の場所(例えば lib フォルダ内など)に配置する事を想定している場合は、 上記の Class-Path セクションに書くパスも適切に合わせてください(「Class-Path: . lib/Vnano.jar」など)。

以上が済んだら、以下のようにJARファイルを生成します:

jar cvfm ExampleApp1.jar manifest.txt ExampleApp1.class

生成したJARファイルは、以下のように実行できます:

java -jar ExampleApp1.jar

主な機能と仕様

上でも見てきたように、Vnano Engine を用いると、アプリ上で式やスクリプトを実行する事ができます。

加えて、Javaで記述した任意のクラスのフィールドやメソッドを Vnano Engine に登録して、式やスクリプト内からアクセスする事もできます。さらに、そのようなフィールド/メソッド提供用のクラスを独立なファイルの形で実装して(「プラグイン」と呼びます)、動的に読み込む事もできます。

Javaで記述したクラスの代わりに、スクリプトファイルとして変数/関数群を定義して、それを「ライブラリ スクリプト」として読み込んで使う事もできます。

このように、Vnano Engine の色々な機能を使うと、カスタマイズ性の高いアプリを開発する事ができます (具体例としては、プログラム関数電卓ソフトの RINPn 」をご参照ください)。

各機能の詳細については、Vnano Engine の主な機能と用例 のページをご参照ください。

また、Vnano Engine の全メソッドの一覧/詳細説明や、オプション類などについては、 こちらの仕様書 のページをご参照ください。

言語としての Vnano

Vnano Engine 上で実行可能なスクリプト言語の名前は、そのまま「 Vnano 」と言います。 Vnano は C言語系のシンプルな文法を持つ言語です。例えば:

ExampleScript1.vnano

上記コードのような具合です。

Vnano の構文や言語機能について詳しくは、「 言語としての Vnano 」のページをご参照ください。

処理速度

Vnano は、データ解析ソフトや計算ソフト、および可視化ソフトなど、演算量の多い用途も想定して開発されています。 そのため、スクリプト言語としては、処理速度は恐らくそれなりに速い部類に入ります。

例えば、一般のノートPC上において、理想条件下での上限値として、スカラ(非配列)演算で約7億回/秒(700MFLOPS)、 配列演算で約150億回/秒(15GFLOPS)程度の実測スコアが得られています。

計測方法やパフォーマンスチューニングなどに関する詳細は「 パフォーマンス計測と解析 」の項目をご参照ください。

※ OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。
※ Windows は、米国 Microsoft Corporation の米国およびその他の国における登録商標です。
※ Linux は、Linus Torvalds 氏の米国およびその他の国における商標または登録商標です。
※ その他、文中に使用されている商標は、その商標を保持する各社の各国における商標または登録商標です。