[ 前へ | 目次 | 次へ ]

プラグイン

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

プラグインとは

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

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

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

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

connect プラグインパス ;

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

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

connect conn ;

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

connect aaa.bbb.ccc ;

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

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

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

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

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

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


この記事の著者

松井 文宏
[ RINEARN代表, 博士(理学), 応用情報技術者 ]
VCSSLやリニアングラフ3D、その他諸々を開発しています。ガイド類や記事も書いています。


スポンサーリンク



この階層の目次
RINEARN からのお知らせ
※ VCSSL は RINEARN が開発しています。

ExevalatorのVer.2.4をリリース—MCPをサポートし、AI用の計算ツールとしても使用可能に
2025-11-15 - 式計算ライブラリExevalatorのVer.2.4をリリースしました。今回から、AIとやり取りするためのプロトコルである「MCP」をサポートし、AI用の計算ツールとしても使用可能になりました!

Exevalatorの最新版Ver.2.3をリリース、新たにPythonで使用可能に
2025-11-04 - 式計算ライブラリExevalatorのVer.2.3をリリースしました。今回から、新たにPython製のプログラムでも使用可能になりました!AI用ツール開発需要などの背景も踏まえて、詳細をお知らせします。

Exevalatorをアップデート、エラーメッセージの日本語化が手軽に
2025-10-31 - 式計算ライブラリExevalatorのVer.2.2.2をリリースしました。今回から、エラーメッセージを手軽に日本語化できるようになりました。数件のバグ修正&微調整も作んでいます。詳細をお知らせします。

関数電卓RINPn(りんぷん)オンライン版の内部構造を解説
2025-10-22 - 先日登場した、関数電卓ソフトRINPn(りんぷん)のオンライン版の内部構造を解説します。オープンソースなので、自由に改造・流用して、自分だけのWeb電卓を作る事も可能!(かもしれない)

関数電卓RINPn(りんぷん)、どこでもすぐ使えるオンライン版が登場!
2025-10-21 - フリー関数電卓ソフトRINPn(りんぷん)に、Web上でどこでもすぐ使える「オンライン版」が新登場しました!PCだけでなく、スマホでも利用可能です。詳細をお知らせします!

VCSSLのサポートAIが登場!ただし実用品質にはChatGPT有料アカウント(Plus)での利用推奨
2025-08-19 - プログラミング言語VCSSLについての質問対応や、コーディング作業を手伝ってくれるAIさんが登場しました!使用までの流れや推奨事項を解説し、実際の回答例や生成コード例などもたくさん紹介します!

各ソフトやVCSSLの英語版ドキュメント整備がほぼ完了
2025-06-30 - RINEARNでは2年前から、AIの補助による英語版ドキュメントの大幅拡充計画を進めてきました。今回、主要ドキュメント&コンテンツの英訳がほぼ完了し、一応の目標水準に達しました。詳細をお知らせします。

VCSSLの最新版をリリース:外部プログラムとの連携機能を少し強化、他
2025-05-25 - VCSSL3.4.52をリリースしました。外部プログラム(C言語製の実行ファイル等)との連携機能を少し強化し、文字化け対策やOS判別などを可能にしました。他にも細かい機能追加があります。詳細をお知らせします。

VCSSLの最新版をリリース、Java24上での非互換な挙動を対処
2025-04-22 - VCSSL3.4.50をリリースしました。Java24環境上でのネットワークドライブ関連のファイルパス解決で、従来環境とは異なる挙動が生じていたのを解消しました。詳細をお知らせします。

リニアングラフやVCSSLの最新版をリリース、目盛りの位置や内容を自由に指定可能に!
2024-11-24 - リニアングラフ3D/2Dを更新し、自由な位置に、自由な表記内容の目盛りを描けるようになりました!併せて、Java言語やVCSSLでの、プログラム制御用APIも拡張しています。詳細をお知らせします。