プログラム

本格的な開発作業に入る前に、プログラミングの前提となる事をいくつか抑えておきましょう。

- 目次 -

プログラム

コンピューターとソフトウェア

誕生からわずか数十年、コンピューターはまるで夢物語のように急速な進化を続け、毎年のようにどんどん便利になり、今日ではまさに何でもできる魔法の機械となりました。

その背景には、もちろん処理性能の向上といったハードウェア面での進化もありますが、ソフトウェア面での進化も決して見逃せません。

よく知られている通り、コンピューターは、ソフトウェアを入れる事で、次々と新しい機能を追加していけます。

どんなに高性能なコンピューターも、生産されたばかりの時点では、何もできません。現在のコンピューターが、非常に便利で何でもできるのは、実に様々な種類のソフトウェアが普及しているおかげでもあるのです。

プログラム

このように、コンピューター上で様々な機能を実現してくれるソフトウェアですが、そもそもソフトウェアとは、一体何なのでしょうか。

実はソフトウェアの実体、つまり中身は、「プログラム」というものです。プログラムには、いわゆるマシン語から簡易スクリプトに至るまで、実に様々な種類のものが存在しますが、それら全てに共通しているのは、「コンピューターに対する命令が、規則正しく並んでいる」という事です。コンピューター(もしくはランタイムなどの実行環境)は、プログラム中の命令を規則正しく順々に実行していき、その結果としてソフトウェアの機能が実現されます。つまりプログラムとは、コンピューターに対する「処理の手順書」のようなものです。

私達がコンピューターでインターネットができるのも、ゲームができるのも、さらに言うなら画面に文字が表示されるのも、全てそういうプログラムがあるからなのです。

プログラミング言語

プログラムについて、「コンピューターに対する命令が、規則正しく並んでいる」ものだと言いましたが、その「規則」となるのが、プログラミング言語です。

プログラミング言語には、実に様々な種類のものが存在しますが、大別すると以下のように分類できます。

マシン語、アセンブリ言語

最も直接的な形でコンピューターに命令し、全ての土台となっているのが、マシン語(機械語)です。

マシン語は0と1の羅列で構成され、コンピューターが直接理解し、実行する事が可能です。 というよりも、マシン語を読んでその通りに動作するように、コンピューターの中核部(CPU)は設計され、生産されているのです。

マシン語は0と1だけで構成されるため、人間が直接マシン語でプログラムを開発するのは困難です。 そこで、各命令に対応する0と1の羅列に、英字の語句(ニーモニック)を割り当て、読みやすくしたものがアセンブリ言語です。 実行する際には、ニーモニックを元のマシン語に置き換えます。 この作業は人間の手でも可能ですが、一般には「アセンブラ」というソフトウェアが使用されます。

コンパイラ型言語

マシン語やアセンブリ言語は、 基本的にCPUに直接用意されている機能(基礎演算やメモリーアクセス、ジャンプなど)しか使用できないため、 手作業でそれらを組み合わせて高機能なソフトウェアを開発するには、かなりの労力が必要となります。

そこで、もっと汎用的で便利な機能を言語としてサポートしておいて、それを用いて楽にプログラムを記述し、 そのプログラムを、「コンパイラ」と呼ばれる特殊なソフトウェアでマシン語に変換して実行するのが、コンパイラ型言語です。 有名な 「 C言語 」 も、コンパイラ型言語です。

コンパイラ型言語を用いても最終的に仕上がるものはマシン語のプログラムですが、高機能な部分の実装はコンパイラが自動で行ってくれるので、 マシン語やアセンブリ言語でゼロから開発するよりも、はるかに簡単に済みます。 それでいて、マシン語としてCPU上で直接実行されるので、処理速度も非常に高速で、CPUの性能を最大限活用する事ができます。

スクリプト言語

コンパイラ型言語で記述されたプログラムは高機能ですが、マシン語に変換しなければ実行できません。 頻繁に書き換えるようなプログラムなど、いちいち変換するのが面倒な場合もあります。 また、マシン語はCPUの世代や種類によって様々な種類が存在するため、マシン語のプログラムには機種依存性が生じます。

そこで、プログラムを事前にマシン語には変換せず、そのまま実行するのが、スクリプト言語です。

もちろん、コンピューターはマシン語しか読めませんから、コンピューターがスクリプト言語のプログラムを直接実行する事はできません。そこで、スクリプト言語のプログラムは、「インタープリタ」という特殊なソフトウェアの上で実行されます。インタープリタは、プログラムを解読し、実行できるように設計されたソフトウェアです。つまるところ、プログラムを動かすためのプログラムです。

VCSSLはスクリプト言語

VCSSLは、最後に挙げたスクリプト言語に該当します。VCSSLで記述されたプログラムは、「 VCSSLエンジン 」というインタープリタ上で解読され、実行されます。

これにより、VCSSLではプログラムを書いてそのまま実行でき、さらに様々なオペレーティングシステム上でそのまま動作し、機種依存性もありません。 手軽に扱う事ができます。

反面、C言語などと比較すると処理速度では劣ります。

VCSSLプログラムの基本

それでは、いよいよVCSSLでプログラムを開発してみましょう。まず、全ての基本となるルールをいくつか押さえておきます。

プログラムは上から下へ実行される

VCSSLに限らず、多くのプログラミング言語では、 プログラムの内容は基本的に上の行から下の行へ向かう流れで処理されていきます。 1つの行(文)で1つの処理を意味します。これは人間が横書きの本を読む場合と同じです。

ただし、関数の呼び出しなどにより、処理が突然離れた行や、別のプログラムの内容に移る場合もあります。 しかし、移った先では、また上から下へと処理されていきます。

処理の流れ
VCSSLプログラムは、基本的に上の行から下の行へ向かう流れで処理される

行(文)の終わりには「 ; 」(セミコロン)を付ける

VCSSLをはじめ、C言語系の文法をもつプログラミング言語の多くは、 行(文)の区切りを「 ; 」(セミコロン)で認識します。

テキストエディタ上での改行の有無は処理に全く関係が無く、 どんなに改行を含もうともセミコロンが打たれるまでが「一行(一つの文)」となります。

これにより、長い式をテキストエディタの複数行に渡って記述する事ができます。しかしながら、改行してもセミコロンを打ち忘れるとエラーとなるため、慣れるまでは注意が必要です。

プログラムは半角英数字で記述、ただし変数名や関数名には日本語も可

VCSSLのプログラムは、原則として半角英数字で記述しなければなりません。 同じアルファベットでも、全角で記述すると処理できません。 特に、全角スペースを誤って使用しないよう気を付けてください。

ただし、変数名や関数名には、日本語を含む全角文字を使用する事も可能です。

ダブルスラッシュ「//」よりも後は無視される(コメント)

プログラム中でダブルスラッシュ「//」を記述すると、その行の中で、そこよりも後の部分は無視されます。 これを利用して、プログラム中にメモやコメントを記入する事が可能です。

「/*」と「*/」で囲った箇所は無視される(コメント)

ダブルスラッシュ「//」によるコメントは、一行のみが無視されます。 それに対し、「/*」と「*/」で囲った部分は、複数行にわたって無視されます。 長いコメントを記述したい場合や、プログラム内の特定の処理を一時的に削除したい場合などに使用します。

処理内容を画面に出力(表示)する

処理内容の出力は、プログラミングにおいて最も重要な操作です。 ここでは、print関数を用いて、VCSSLコンソールにメッセージを表示してみましょう。 下記のように記述し、実行してみてください。

HelloWorld.vcssl

実行結果
VCSSLコンソールに「Hello, Worldと表示される

このプログラムを実行すると、VCSSLコンソールに「 Hello, World ! 」と表示されます。 この他にも、数値や式の値などを表示する事も可能です。下記のように記述し、実行してみてください。

HelloWorld.vcssl

このプログラムを実行すると、VCSSLコンソールに「 7 」と表示されます。

なお、処理内容の出力には、print関数の他にも、println関数やpop関数が存在します。 println関数は、print関数に自動で改行を行う機能が付いた関数です。 pop命令は、VCSSLコンソールでは無く、独立したメッセージウィンドウにメッセージを表示する関数です。