[ 前へ | 目次 | 次へ ]
Japanese English

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 」を実行します:

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 -

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

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言語系のシンプルな文法を持つ言語です。例えば:

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

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

処理速度

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

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

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

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


Japanese English
この階層の目次
お知らせ

Exevalator の内部アーキテクチャ解説
2022/05/04 - 先日リリースした、オープンソースの式計算ライブラリ「 Exevalator(エグゼバレータ)」の内部構造を、全体像から各コンポーネントの役割まで、詳しく掘り下げて解説します。

多言語対応&著作権フリーの式計算ライブラリ「 Exevalator 」をリリース
2022/04/16 - RINEARNではこの度、Java/C#/C++/Rust製のソフトウェア開発で利用できる、著作権フリーの式計算ライブラリ「 Exevalator(エグゼバレータ)」を公開しました。詳細をお知らせします。

Vnanoがオープンベータ版に移行、VCSSLの実行環境で標準で実行可能に
2021/04/07 - ソフト内組み込み用スクリプトエンジン&言語「 Vnano 」がオープンベータ版に移行し、併せて、VCSSLの実行環境でもVnanoコードの実行が可能になりました。詳細をお知らせします。

新着
FizzBuzz の答えを表示するプログラム

プログラミングの練習問題としても有名な、FizzBuzz 問題の答えを表示するプログラムの例です。
2022/05/12
[公式ガイドサンプル] 引き算の結果を画面に表示する

「VCSSLスタートアップガイド」内のサンプルコードです。引き算を行って、結果を画面に表示します。
2021/07/08
[公式ガイドサンプル] 式を複数行にわたって書く

「VCSSLスタートアップガイド」内のサンプルコードです。足し算を行う式を、複数行にわたって記述します。
2021/07/07
[公式ガイドサンプル] 足し算の結果を画面に表示する

「VCSSLスタートアップガイド」内のサンプルコードです。足し算の結果を求めて、画面に表示します。
2021/07/06
Vnano版 | ローレンツ方程式を数値的に解くプログラム

ローレンツ方程式を4次ルンゲ=クッタ法によって解き、グラフ描画用のデータを出力するプログラムです。
2021/02/12
開発元Twitterアカウント