VCSSLの概要と導入

今回は、いよいよ実際にプログラムを書き、みなさんのPCの上で動かしていきましょう。 プログラミング言語 VCSSL & Vnano の概要から、実行環境のダウンロード(無料)と導入方法、 そして一行の短いプログラムを書いて実行してみるまでの手順について、順を追って解説していきます。

- 目次 -

プログラミング言語VCSSLの概要

プログラムを書くために、「 プログラミング言語 」という専用の言葉を使う必要がある事は、前回説明した通りですね。 世の中にはたくさんのプログラミング言語があり、適材適所で使われています。 ただ、プログラミング言語は互いに共通点が多く、どれか一つで感覚やコツを掴めば、別の言語も習得しやすくなります。

このコーナーはVCSSLという言語(およびその省機能版のVnano、詳細は後述)の公式ガイドなので、 VCSSLを使ってプログラミングをしていきます。 そこでまず、VCSSLとはどんな言語なのかを見ていきましょう。

書き方( 文法 )はC言語風

数多くあるプログラミング言語の中で、「 C言語 」はとても有名です。 みなさんの中にも、聞いた事がある方や、実際に使用されている方も多いかもしれません。

このC言語は歴史も長く、幅広い分野で使われてきたため、 後に登場した多くの言語にも、いわば原型のような形で影響を与えています。 特に、いわゆる「 C系 」と呼ばれる言語 ― C++、Java、C# 等々 ― は、 プログラムをぱっと見たときにC言語風の印象を受けますが、 これは書き方(文法)の基本部分にC言語風のスタイルを採用しているためです。 VCSSL でもその通りで、基本的な処理の記述スタイルはC言語風になっています。

単純なプログラムにおけるC言語とVCSSLの比較図

ただしすぐ後で述べるとおり、VCSSLは簡易用途を想定したシンプル寄りの言語であるため、 メジャーな言語ほどの汎用性はありません。 しかしながら、VCSSLを扱いながら覚えた基本は、C言語や他のC系の言語へのステップアップにおいても、きっと役立つ事でしょう。

もともとは電卓ソフト用の言語
- 手軽さやコンパクトさを優先

VCSSLはもともと、電卓ソフト上でちょっとした計算を自動化するための簡易言語として誕生しました。 そのため、言語としての方向性は、以下のような3つの要求点に基づいています:

結果として、VCSSLの骨格は、 なるべくC言語風の標準的なスタイルを保ちつつ、 記述の手軽さやシンプルさを優先させたものになっています。

単純なプログラムの例

半面、VCSSLには、オブジェクト指向のような大規模開発向けの言語機能や、 流行の先進的な言語機能などはありません。 むしろ逆で、 VCSSLの骨格は、枯れた技術でコンパクトにまとめ上げ、 「 シンプルで変わらない道具 」という方向での完成形を目指しています。

ライブラリでは色々な用途をサポート
- GUIや簡易3DCG機能も

一方、VCSSLが電卓用途だけの言語であったのは初期の話で、現在はもっと色々な用途に対応できる、独立したプログラミング言語になっています。 そこで、言語の骨格はシンプルなままに保ちつつ、 色々な機能をまとめた「 ライブラリ 」というものが標準でいくつも付属しています:

上記ページの通り、テキストやファイルの処理など日常で必要な機能をはじめ、 GUI ( 画面作成 )や2D & 3DCGなどのグラフィックス機能や、サウンド機能なども標準で利用できます。

3DCG機能やGUI機能を使用した例

ただし、先述したVCSSLの方向性と同様、これらの機能でも基本的に簡易用途での手軽さが優先されています。 たとえば3DCGの描画速度は数十万ポリゴン/秒くらいで、表面にテクスチャ( 絵 )を貼ったりもできませんが、 そのかわり数学的に難しい知識がなくても扱えます。

数値計算やデータ可視化のための機能も

VCSSLでは、数値計算やデータの可視化などの用途も比較的重視しています。 たとえば、処理結果をグラフに表示させる機能や、 大きな桁数の計算なども標準でサポートしています。

ローレンツ方程式の解曲線を、3Dグラフで可視化した例

後述の通りインタープリタ型の言語でありつつ、静的型付け( 「変数と配列」の回参照 )を採用しているのも、 計算用途を考慮しての仕様です。 処理速度も 1 億回演算/秒( 100MFLOPS, 倍精度 )程度と、 そこそこの計算量の数値計算やデータ変換・可視化などをこなせる水準です。

インタープリタ上で動作、各種PCでインストール不要で実行可能

VCSSLのプログラムは、インタープリタ型の言語処理系( 前回の後半を参照 )によって実行されます。 VCSSLの実行環境は、全てJava言語で開発され、各種PC用OSにおいてインストール不要で動作し、USBメモリーからも起動できます。

インストール不要で持ち運べる説明図

つまりVCSSLで書いたプログラムは、VCSSLの実行環境さえ一緒に置いておけば、 何もインストールしなくても実行できますし、USBメモリーで持ち運んで使う事だってできます。 この記事の最後に述べる通り、自分で書いたプログラムを、実行環境と一緒に配布する事もできます。

ソフトウェア内組み込み用のサブセット「 Vnano (VCSSL nano)」

現在のVCSSLは、ここまで見てきた通り、単体でもスクリプト言語としてそれなりに使えるように、色々な機能をサポートしています。 一方、初期のVCSSLの「 電卓などのソフトウェアに組み込んで使われる事を想定した、コンパクトな簡易言語 」 という方向性からは、少し離れてしまっています。

そこで、その方向性をカバーするために、VCSSLの機能を再び削ってコンパクト化し、 中心部分のみを抜き出したサブセット(省機能版)として、Vnano(VCSSL nano)という派生言語もあります。

Vnanoは、単体のスクリプト言語として色々な用途に使えるほどの機能はないものの、その代わり実行環境がコンパクトで、ソフトウェア内に組み込みやすく、 さらにオープンソースで自由に利用できます。

たとえば、関数電卓ソフトの「 RINPn 」は、 Vnanoの実行環境を搭載し、それによってユーザーが関数を自作したり、計算処理用のプログラムを作成して実行したりする事ができます。

Vnanoは、VCSSLの派生言語とは言っても、標準で使えるデータ型や関数群の数が削られているくらいで、プログラムの書き方のルール(文法)自体はVCSSLと同じです。 そのため、特に断りのない限り、この文書内でのVCSSLの解説は、Vnanoの解説も兼ねています。

なお、Vnanoで書かれたプログラムは、VCSSLの実行環境で普通に実行できます。 加えて、下記公式サイトからオープンソースのVnano実行環境も入手可能で、自作ソフト等にも自由に組み込めます。

VCSSLでのプログラミング環境の準備

まずはVCSSLの実行環境をダウンロード!

それでは、VCSSL(Vnano含む)でプログラミングをはじめるために、必要なものを揃えましょう。 ダウンロードと使用方法は、下記ページに詳しく載っていますので、それを参考にしてみてください。

配布パッケージは圧縮されているため、まず展開しよう

上でダウンロードした、VCSSLの実行環境の配布パッケージ「 vcssl_?_?_?.zip (「?」の箇所はバージョン番号の数字) 」は、 ZIP形式で圧縮されて 1 つのファイルになっているため、まずは展開しましょう。

Microsoft® Windows® をご使用の方は、 最初にZIPファイルを右クリックして「プロパティ」を選択し、 プロパティ画面の下にあるセキュリティ項目の「許可する」にチェックを入れて「OK」します。 ( これを行わないと、展開の途中や RINPn の起動時に、警告メッセージが表示されて失敗する場合があります。) その後、ZIPファイルを右クリックして、メニューから「 すべて展開 」や「 ここに展開 」や「 解凍 」などの項目を選択すると展開できます。

Linux® などをご使用の方も、大抵の環境では右クリックメニューから展開できます。 ただ、その場合は環境によってはファイル名の日本語部分などが文字化けしてしまう場合もあり、 その場合はコマンドラインで、以下のように文字コードを指定しながら展開する事もできます:

cd ZIPファイルのある場所
unzip -O cp932   ZIPファイル名

インストールせずに使用してみる

VCSSLの実行環境は、インストールせずに使用できます。 Microsoft® Windows® をご使用の場合は、ZIPファイルを展開してできたフォルダ内にある 「 VCSSL_?.?.?.bat (バッチファイル、「?」の箇所はバージョン番号の数字) 」 をダブルクリックして実行してください。

※ 末尾の「 .bat 」の部分は、ご使用の環境における拡張子の表示設定によっては表示されません。
※ ここで警告メッセージなどが表示されて起動できない場合は、1つ前のステップで、ZIPファイル展開時に、セキュリティ項目を許可するのを忘れているかもしれません。

Linux®等やその他のOSでは、同フォルダ内までコマンドライン端末上でcd コマンドで移動し、 「 java -jar VCSSL.jar 」と入力して「 VCSSL.jar (JARファイル)」を実行してください。 このJARファイルが、VCSSLのプログラムを解釈・実行する、実行環境の本体(VCSSLエンジン)です。

実行すると、以下のような画面が起動します。

VCSSLランタイムを起動後の、プログラム選択画面の図

この画面で、実行したいプログラムを選んでください。それだけで実行できます。簡単ですね。 試しに、同梱のサンプルプログラムを実行してみるとよいでしょう。

よく使う場合は、PC にVCSSLをインストール(導入)する事も可能

VCSSLの実行環境は、以下の通りにPCにインストール(導入)する事もできます:

インストールしておくと、書いたプログラムをダブルクリックするだけで実行できたり、 コマンド入出力端末から vcssl コマンドで実行できたりと、 使う頻度が高い場合に便利になります。

テキストエディタの用意

さて、続いてプログラムを書くために使う、テキストエディタという種類のソフトを用意します。 とは言っても、PCを買った時点で、メモ用のもの(メモ帳など)が最初から付いていると思います。 それでも一応プログラムは書けるので、最初のうちはそれを使うのもありでしょう。

一方で、「 テキストエディタ プログラミング 」などでWeb検索してみると、 プログラミングに適したものがたくさん見つかります。 最初から本格的なものを使ってみたい場合は、 その中で気に入ったものを選びましょう。 たとえば Visual Studio Code などは、各種のOSで使えます:

プログラムを書いて実行してみよう!

プログラムを書く

さあ、いよいよプログラムを書いて、実行してみましょう !   まずは、上で用意したテキストエディタを起動して、以下の一行のプログラムを書きます:

print ( "Hello, World !" ) ;
※ 最後の「 ; 」記号を忘れてはいけません !

Windows 上でメモ帳を使う場合は、スタートメニューから「 Windows アクセサリ 」→「 メモ帳 」などで起動して、上のプログラム内容をコピーして貼り付けるか、書いてください。

先ほど例に挙げた Visual Studio Code を使う場合は、起動してから「 ファイル 」→「 新規ファイル 」を選び、上のプログラム内容をコピーして貼り付けるか、書いてください。

プログラムに名前をつけて保存する

プログラムを書けたら、保存しましょう。 まずテキストエディタのメニューから「 ファイル 」→「 名前を付けて保存 」を選びます。 保存場所はとりあえずデスクトップでもどこでも OK です。 名前は「 ファイル名 」の項目に好きなように入力できますが、一つ重要な注意点があります。

それは、「 VCSSLのプログラムでは、ファイル名の最後に必ず「 .vcssl 」を付ける必要がある 」 という事です。 そうすると、「 このファイルの内容はVCSSLのプログラムです 」と宣言した事になります。 同様に、もしもVCSSLではなくVnanoのプログラムとして実行したい場合は、名前の最後を「 .vnano 」にしてください。 VCSSLの実行環境は、この部分を見て、プログラムの記述言語がVCSSLなのかVnanoなのかを判断します。

※ この「.vcssl」や「.vnano」の部分は、拡張子と呼ばれるもので、環境によっては保存後に表示されない場合もあります。 ちゃんと付いているかどうかを確認したい場合は、「 拡張子 表示 」などで検索して設定してみてください。

続いて、その項目の下にある 「 ファイルの種類 」の選択ボックスから、「 すべてのファイル 」を選択してください。 例として「 Test 」と名付けるなら以下の通りです:

正しい保存方法における名前と種類の例

プログラムを実行する

それでは、上で書いたプログラムを実行してみましょう。 先ほど「 インストールせずに使用してみる 」の項目で述べた通りの方法でVCSSLの実行環境を起動し、 表示される画面から、上で作ったプログラム「 Test.vcssl(または.vnano)」を選択すると、実行できます。 ( .vcssl や .vnano の部分は、拡張子の表示設定によっては見えません。)

実行すると、以下のように黒い画面に白い文字で「 Hello, World ! 」と表示されます:

実行結果の図

そう、先ほどのプログラムは、画面に「 Hello, World ! 」というフレーズを表示する内容だったのです。 実はこれは、プログラミングの入門で、とりあえず最初に表示させてみる、お決まりのフレーズです。 これで私たちは、いよいよプログラミングの第一歩を踏み出したわけです!

プログラムを書きかえて再実行してみる

さて、黒い画面やテキストエディタはまだ閉じないでください( もし閉じてしまった場合は、再び開いておいてください )。 実際にプログラムを作る作業では、少し書きたしては、試しに実行して… をくり返す事になります。そのたびに上の手順をくりかえす必要はありません。

まずテキストエディタの画面に戻り、プログラムの内容を以下のように書きかえてみましょう:

print ( "大丈夫! ちゃんと日本語も表示できます!" ) ;

もとの内容は消してかまわないので、上の内容をそのままコピーして貼り付けるか、書いてください。 そしてテキストエディタのメニューから「 ファイル 」→「 上書き保存 」を選ぶか、または Ctrl キーと S キーを同時押し してください。 すると、このプログラムの内容が、先ほどと同じ名前で保存されます。 (※ エディタによっては、同時押しするキーは異なります。)

続いて、プログラムを実行すると出てきた黒い画面に戻り、メニューから「 Reset 」を選ぶか、または F11 キーを押してください。 するとプログラム内容が更新され、再び実行されます:

プログラムを書きかえた後の、実行結果の図

プログラムを書きかえた結果が反映されて、表示される内容が変わりましたね。そう、ちゃんと日本語も表示できるんです。

日本語が文字化けする場合は、先頭行に文字コード宣言を書けば解決

ところで、上の手順の結果、下図のように謎の暗号のような文章が表示された方も多いかと思います。

文字化けしている実行結果の図

これは「文字化け」という現象で、日本語を含むプログラムの場合にしばしば発生します。 とりあえずここでの対策は簡単なので、心配は要りません。

文字化けは、プログラムの先頭行に、以下のように「 文字コード宣言 」という特別な一行を書いておくと、防ぐ事ができます:

coding UTF-8;

print ( "大丈夫! ちゃんと日本語も表示できます!" ) ;

または

coding Shift_JIS;

print ( "大丈夫! ちゃんと日本語も表示できます!" ) ;

のどちらかを試してみてください。これで再び、黒い画面のメニューから、Reset を選ぶかF11キーを押して、再実行してみると:

文字化けが直った図

ちゃんと表示されるようになりましたね。 最初からちゃんと表示された方も、上の2通りを試してみてください。 どちらかで文字化けが生じる事を実感できるはずです。

上のプログラムで先頭行に登場している、 「 UTF-8 」や「 Shift_JIS 」というのは、 文字コードと呼ばれるものです。 文字コードについて詳しい説明は「 ファイルの読み書き 」の回で行いますが、 簡単に言うと、日本語などの文字をどういうルールで扱うかを決めているものです。 標準で使用される文字コードは、OSの種類やテキストエディタ、その他色々なソフトごとに違うため、 書く側と読む側で日本語の扱いがちぐはぐになってしまって、先ほどのように文字化けが生じるのです。

どの文字コードが正解かは使用環境によるため、 これ以降、このガイドでは文字コード宣言は省略しますが、 基本的にはプログラムの先頭で、常に上のように文字コード宣言を書いておいた方が無難です。 プログラムがちゃんと動かない原因を苦労して探して、結局は文字化けが原因だった、 というトラブルを確実に防げるからです。

書いたプログラムを配布するには…

VCSSLで書いた自作プログラムは、完全に( 著作権的にも )書いた人のもので、自由に使用し、配る事もできます。 その際、VCSSLの実行環境も、自作プログラムと一緒に配る事ができます。

一番簡単なのは、VCSSLの実行環境をそのまま同梱してしまう事

一番簡単なのは、自作のプログラムの配布パッケージに、VCSSLの実行環境の配布パッケージをそのままの形(ダウンロードしたままの形)で同梱してしまう事です。 これまでの流れと同じように、VCSSLの実行環境を展開・起動してもらい、自作のプログラムを選択して実行してもらうわけです。

ひと手間かけると、よりユーザーにとって便利な形に

ただ、VCSSLの実行環境の起動後に、ユーザーに自作プログラムを選択してもらう手間を省いて、すぐに実行されるようにしたい場合もあるかもしれません。

その場合はまず、配布するVCSSLの実行環境のフォルダ内( VCSSL.jarと同じ場所 )に、自作のプログラムを置きます。 ここでは仮に「 Test.vcssl 」としましょう。 そして、「etc」フォルダ内に、「 VCSSL_Setting.ini 」というファイルを作成(または編集)して、以下のように記述します:

PROGRAM=Test.vcssl

これで、起動時に自動でTest.vcsslが読み込まれて実行されます。

あとは、自作プログラムの説明書なども書いて入れた上で、 VCSSLの実行環境のフォルダ名を適当に(自作プログラムの名前などに)変えて、 フォルダごと右クリックして 「 送る 」 → 「 圧縮 」すると、1個のZIPファイルにまとめられます。

フォルダ内のファイル構成の図

その際、VCSSLの実行環境のフォルダは結構なサイズがあるため、必要ないものは省いて軽くする事も可能です。 たとえば、ガイド/ドキュメント類は特にサイズが大きいため、それらを省くだけでも、半分以上サイズを削れます。

一方で、ライセンス文書が入っている「 License フォルダ 」だけは必ず同梱し、その旨を、ユーザーに向けた説明書(ReadMe.txtなど)の中で示しておく必要があります。

※「jre」フォルダやセキュリティ設定ファイルなど、同梱時に注意が必要なファイルも … 未起動のVCSSL実行環境を同梱するのがおすすめ

VCSSLの実行環境をバッチファイルで起動した際に、動作に必要なJava®実行環境(JRE)が見つからなかった場合、 ダウンロードして使用するかどうかユーザーに尋ねられますが、そのJREは「jre」フォルダ内に配置されます。 そのJREには、そのJRE自身の(別の)ライセンスが適用されます。商用・非商用問わず無償で使用できますが、 配布等には条件が存在するため、注意が必要です。詳細はReadMeや「jre」フォルダ内の文書、およびJRE付属の説明書等をご参照ください。

また、VCSSLの実行環境を起動すると、「etc」フォルダ内(またはVCSSL.jarと同じ場所)に、 「 VCSSL_Security_Setting 」というファイルができますが、これも配布には適しません。 これは、VCSSLのセキュリティ設定を保存するファイルで、実行環境が置かれている場所や日付などから生成されたハッシュ値も記録されており、 それによって、コピーや移動するとセキュリティ警告のメッセージと共に内容が(全てデフォルト値に)初期化されます。

このように、ダウンロード後に起動済みのVCSSLの実行環境には、再配布には適さないファイルも生成されている事に留意する必要があります。 従って再配布の際は、ダウンロードしたまま未起動のVCSSL実行環境を同梱する事をおすすめします。 なお、同梱後にテスト実行するとやはり色々なファイルが生成されるため、 配布用の内容をまとめる場所と、それをコピーしてテスト実行する場所は分けておく事もおすすめします。

電卓ソフト「リニアンプロセッサー」や「RINPn」などでの実行も!

フル機能のVCSSLをサポートする電卓ソフト「リニアンプロセッサー」

VCSSLのプログラミングと実行は、電卓ソフト「 リニアンプロセッサー (RINEARN Processor) 」で行う事も可能です。 詳細はリニアンプロセッサーのガイドをご参照ください:

リニアンプロセッサー 公式サイト
https://www.rinearn.com/ja-jp/processor/

リニアンプロセッサーでは、ウィンドウを最大化すると、入力項目が広がってテキストエディタの代わりとして使えるため、 別途エディタを用意・起動する必要はありません (一方で、それなりに長いプログラムになると、やはりこの節で行ったように、本格的なエディタで書くのが便利です)。

リニアンプロセッサーでは、VCSSLのプログラムをいくつもメニューバーに登録して、すぐ実行する事ができます。 また、VCSSLで記述した関数を、電卓の計算式で使う事などもできます。 そのため、VCSSLでアプリや計算処理をいくつも書いて、日常で頻繁に使うような場合などに特に便利です。

Vnanoをサポートする電卓ソフト 「RINPn (りんぷん)」

リニアンプロセッサーには、 小型・軽量化した派生版のような電卓ソフト「 RINPn (発音は「りんぷん」、RINEARN Processor nano の略) 」もあります。 RINPnは、リニアンプロセッサーから日常で頻繁に使う機能のみを抜き出したようなソフトで、機能の幅は削られている反面、 リニアンプロセッサーよりも軽快・高速に動作し、画面もコンパクトです。

RINPnでは、フル機能のVCSSLは使えませんが、その代わりVnanoをサポートしています。 具体的には、Vnanoで書いたプログラムを実行できるうえに、電卓の計算式で使う関数を、Vnanoで自作する事が可能です。 詳細はRINPnのガイドをご参照ください:

RINPn 公式サイト
https://www.rinearn.com/ja-jp/rinpn/

その他のソフトも

加えて、グラフソフトの「 リニアングラフ3D / リニアングラフ2D 」なども、 VCSSLを標準サポートしています。 このガイドでは、話の焦点をプログラムの書き方の説明に絞るため、それら個別のソフト類は扱いませんが、実用面では用途に応じて併用すると便利です。 興味のある方は、ぜひ活用してみてください!

記事中の商標などについて