[ 前へ | 目次 | 次へ ]

プラグイン

ここでは、VCSSL処理系の機能を拡張するための方法である、プラグインの接続について扱います。

プラグインとは

プラグインとは、VCSSLだけでは実現できないような、 独自の機能を提供するための部品的なソフトウェアです。 また、VCSSLから、他の言語で記述された処理を呼ぶためにも使用します。 例を挙げるなら、本書で扱ったファイル入出力関数なども、 VCSSLの処理系に標準で接続されたファイル入出力プラグインが処理しています (それが標準ライブラリ「System」によりラッピングされています)。 プラグインが独自にサポートする関数の事を、そのプラグインのプラグイン関数と呼びます。

一般に、プラグインはVCSSL以外の言語で開発されたプログラムです。 プラグインがどのような言語で開発され、またVCSSL処理系との間でどのような通信形態を採用しているかは、 処理系によって異なります。従って、プラグインを接続するには、 使用している処理系に対応したプラグインを用意する必要があります。

プラグインを接続するには

プラグインをシステムに接続するには、プログラムの先頭領域でconnect宣言を行います:

connect プラグインパス ;

プラグインパスは、ライブラリのインポートと同様に、実行モジュールからの相対パスを、 ドット記号「.」区切りで指定します。プラグインのファイルが実行モジュールと同じ場所(フォルダ内)に存在する時は、 プラグインのファイル名を記述するだけで使用できます。

例えば実行モジュールと同じフォルダ内にある「 conn 」プラグインを使用するなら:

connect conn ;

これで、connがサポートするプラグイン関数を用いて、 connが提供する機能を使用する事ができるようになります。 また、実行モジュールから見て、「aaa」フォルダ内の、さらに「bbb」フォルダ内にある「 conn 」を使用するなら:

connect aaa.bbb.ccc ;

とします。なお、プラグインは、実行モジュールと同じ場所に配置するのでは無く、 処理系によって指定された場所に置く場合もあります。

プラグイン関数のラッピング

プラグインの機能を利用するプログラム内において、 (標準のもの以外の)プラグイン関数を直接的にコールする事は推奨されません。 なぜなら、プラグインはオペレーティングシステムなどの環境への依存性が強く、 さらにプラグイン関数は個々のプラグイン独自の仕様を持つため、 結果としてプラグイン関数を直接コールしているようなプログラムは、 特定の動作環境に強く依存するものになってしてしまうからです。

例えば、接続しているプラグインを、 同じような機能を提供する別のものに切り替えようと思った場合にはどうなるでしょう。 この場合、プログラム内のプラグイン関数コール部分をすべて書き換えなくてはいけなくなってしまいます。 そして、プラグインは特定のオペレーティングシステムなどの環境に依存し易い存在であるため、 環境ごとにプラグインを切り替えなければいけなくなる可能性は大いに考えられます。

このような特定のプラグインへの依存を回避するための方法が、プラグイン関数のラッピングです。 プラグイン関数のラッピングとは、プラグイン関数をコールするだけの関数を用意するという手法です。 この関数をラッパー関数と呼びます。そしてプログラム内では、 プラグイン関数を直接コールするのではなく、代わりにラッパー関数の方をコールします。 つまり、プラグイン関数をVCSSLの関数でまるごと包んでしまうわけです。

このようにしておけば、プラグインを別のものに交換する際、ラッパー関数の中身を書き換えるだけで済みます。 ラッパー関数をライブラリにまとめておけば、そのライブラリ1枚を書き換えるだけで済み、 従ってプラグインの機能を利用している大量のプログラムを書き直す必要は無くなります。 このようにして、特定のプラグインへの依存を回避する事が可能になります。



スポンサーリンク



この階層の目次
お知らせ

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

リニアングラフの最新版をリリース、2D版でも描画エンジンの直接操作が可能に
2021年04月03日 - リニアングラフ2D/3Dの最新版をリリースしました。それぞれのアップデート内容をお知らせします。今回から、2D版でもJava言語APIによる描画エンジンの直接操作が可能になりました。

RINPn のオープンベータ版をリリース! 詳細な公式ガイドも同梱&公開
2021年03月08日 - 2019年より開発進行中のプログラム関数電卓「 RINPn(りんぷん)」が、正式リリースに向けた最終準備段階として、オープンベータ版へと移行しました。その詳細をお知らせします。

新着
Vnano版 | ローレンツ方程式を数値的に解くプログラム

ローレンツ方程式を4次ルンゲ=クッタ法によって解き、グラフ描画用のデータを出力するプログラムです。
2021年02月12日
Vnano版 | 積分値のグラフ描画用データを出力するプログラム

数値的に積分を行い、結果の関数をグラフに描くためのデータを出力するコードです。
2020年12月20日
Vnano版 | 積分値を求めるプログラム (数値積分)

矩形法/台形法/シンプソン法を用いて、積分の値を数値的に求めるコードです。
2020年12月20日
3Dグラフを回転アニメーションさせるツール

3Dグラフを、Z軸まわりにゆっくりと回転アニメーションさせるツールです。全角度のグラフを、連番の画像ファイルに保存する事もできます。
2019年10月09日
[公式ガイドサンプル] ユーザーのGUI操作に対して処理を行う

「VCSSL GUI開発ガイド」内のサンプルコードです。ユーザーがGUIを操作した際に行う処理を実装します。
2019年07月28日
開発元Twitterアカウント