2進ベクトルオブジェクトの一部を JavaScript で実装してみました。bvector01.js で公開します。
【図6 BVector 0.1】
Java で2進ベクトルを実装したときは、先に2進行列を定義し、2進ベクトルは2進行列を呼び出すことで実現していました。今回は逆にしようと思います。2進ベクトルを呼び出して2進行列を実現するほうがオーバーヘッドが少ないのではないかと思います。
今回この2進ベクトルオブジェクトをテストをするにあたり2つ工夫してみました。
1つは Google Chrome の「JavaScriptコンソール」を使う他に、Windows Script Host を利用したことです。Windows Script Host は以前は Windows Scripting Host (ウィンドウズ スクリプティング ホスト)と呼ばれていたもので、DOSのバッチファイルを Windows に対応させたようなものです。Windows Script Host (以下WSH)では、VBScript や JScript (マイクロソフトの JavaScript)などのスクリプト言語で Windows のプログラムを操作することができます。JavaScript を単体で動作させる環境にもなっています。
そこで、今回のプログラムでは writeln 関数を定義し、WSHの環境では、
function writeln(str) {
WScript.Echo(str);
}
に書き換えることで、bvector01.js を実行できるようにしました。JavaScript に誤りがあると「JavaScriptコンソール」ではソースも表示できなくなることがあります。このときは、WSH で実行すると、行番号つきでエラーメッセージが表示されます。WSH 環境では HTML を作らずにテストができるので、いろいろ試してみるには便利だと思います。WSH はコマンドラインで、
CScript bvector01.js
とタイプすると実行できます。
もう1つは、Global オブジェクトの eval 関数を使ったことです。私が最初に eval 関数に出会ったのは Lisp という言語を勉強したときです。カッコだらけのプログラムができることで有名な言語ですが、JavaScript と同様、インタプリタ言語なので、その場でプログラムを評価実行する機能があります。今回は eval 関数をテストの部分に使うことで、コードを小さくできました。
引き続き2進ベクトルの実装を続けます。
(つづく)