前回は、VCSSL&Vnanoの概要などについて解説しました。 今回は、早速プログラムを作成して実行し、基本的な入出力を行ってみましょう。
まずは各プログラミング言語で恒例の、Hello World! を出力するコードを書いてみましょう:
print("Hello, World!");
HelloWorld.vcssl
必須では無いですが、1行目で文字コード( Shift_JIS / UTF-8 / EUC_JP など)を指定できます:
coding UTF-8; // 文字コードを指定する場合は必ず1行目の先頭限定
print("Hello, World!");
HelloWorldCoding.vcssl
上記のコードは、VCSSLでもVnanoでも、どちらとしても実行できます。 VCSSLとして実行したい場合は拡張子「.vcssl」、Vnanoの場合は拡張子「.vnano」を付けて、テキストファイルとして保存してください。
実行には複数通りの方法があります。以下にまとめますので、好みの方法を選んで実行してみてください:
最も基本となるのは、公式の実行環境ソフト「VCSSLランタイム」を用いる方法です。
上記からVCSSLランタイムをダウンロード・起動し、保存したコード(VCSSLでもVnanoでもどちらも実行可能)を選択すると、実行されます。
実際に実行すると、下図のような黒い画面「VCSSLコンソール」が表れます。コード内で print 関数などで出力した内容は、このコンソール上に表示されます:
なお、このVCSSLコンソール上で F11 キーを押すか、メニューバーから「Reset (F11)」を選択すると、現在実行中のコードが再読み込みされ、再び実行されます。
従って、プログラミング作業中は、VCSSLコンソールは閉じずに立ち上げっぱなしにしておき、「テキストエディタでコードを編集する度に、コンソール上でF11キーを押して実行してみる」といったスタイルで作業すると効率的です。
さらに、環境変数 Path を設定する事で、コマンドラインから vcssl コマンドでコードを実行する事も可能になります。
VCSSLのプログラムは、電卓ソフト「リニアンプロセッサー」上で実行する事も可能です。というよりも、VCSSLは元々はそのための言語でした。前回述べた通りです。
上記からリニアンプロセッサーをダウンロード・起動して、画面の「 INPUT 」項目に上記のコードを記述し、「 = 」ボタンを押すと実行できます(F11キーでもOK)。
リニアンプロセッサーでは、VCSSLで記述した関数を、電卓の計算で使う事もできます。 また、VCSSLのプログラムを所定のフォルダに詰め込んでおいて、「プログラム」メニューからすぐに呼び出して実行する事もできます。 つまり、VCSSLを日常シーンで活用したいユーザーにとっては、ちょっと便利になるツールです。
半面、電卓ソフトの入力欄に長いコードを書くのはあまり効率的ではない(というか辛い)ため、コーディング作業においてはやはり「普通のテキストエディタ + VCSSLランタイム」で行う方がずっと快適です。
リニアンプロセッサーの小型・軽量版として、「RINPn(りんぷん)」という電卓ソフトがあります。こちらはフルスペックの VCSSL のコードは実行できませんが、Vnano のコードなら実行できます。
上記から RINPn をダウンロード・起動して、画面の「Script」ボタンを押し、Vnano のコードを選択すると実行できます。
また、「計算式の入力欄にコードのファイルパスをコピペして Enter を押す」やり方でも実行可能で、コードを編集しながら何度も実行する場合に便利です。 さらに、環境変数 Path を設定する事で、コマンドラインから rinpn コマンドでコードを実行する事も可能になります。
RINPn でもリニアンプロセッサー同様、Vnano で定義した関数や変数などを、電卓の計算式で使う事ができます。つまり、Vnano を日常シーンで活用したい場合に便利です。
どうでしょう、保存したコードを無事実行できたでしょうか?
続いて、文法などの解説に入る前に、よく使用する基本的な入出力についてまとめておきます。
print関数(改行なし)またはprintln関数(改行あり)で、コンソールへメッセージを出力します:
println(123); // 代わりにprint関数を使うと行末で改行されなくなる
println("Hello");
Println.vcssl
実行すると改行を挟んで「123」「Hello」と出力されます。 print / println関数に複数の引数を指定すると、空白区切りで出力されます。配列を指定した場合も、全要素が空白区切りで出力されます。
なお、任意の位置で改行したい場合は、以下のように改行コード定数 EOL を挟みます:
print("aaa" + EOL + "bbb" + EOL + "ccc");
Print.vcssl
文字列メッセージや数値など、任意の内容の入力にはinput関数を用います:
int a = input("整数を入力してください");
print(a);
Input.vcssl
input関数の戻り値はstring(文字列)型で、上ではそれをint型変数aで受け取っていますが、代入時に自動で変換されます。変換できない場合は実行時エラーとなります。 VCSSLは静的型付けですが、このあたりは小規模用途での小回りを優先して、やや緩い感じになっています。
もし入力された値が数値に変換可能か確認したい場合は、先頭で「 import system.Int; 」 した上で isInt(string) 関数で確認できます。 float も system.Float の isFloat(string) があります:
import system.Int;
import system.Float;
bool isInt = isInt("123"); // true
bool isFloat = isFloat("12.34"); // true
IsInt.vcssl
なお、「はい」/「いいえ」を問うconfirm関数や、ファイル選択用のchoose関数などもあります:
if( confirm("ファイルを選択しますか?") ) {
string filePath = choose("ファイルを選んでください", "./");
print("選択されたファイル = " + filePath);
}
Confirm.vcssl
次回は、VCSSLの基本的な文法を、一通りまとめて見てみます。