Small Basic: 変数 (ja-JP)

この記事は特に Small Basic の変数について説明しています。下図は変数を表すヘルプ画面のアイコンです。

この記事の目次:


変数とは

変数は多くのプログラミング言語で、値の格納場所またはメモです。変数は数値や文字列を格納します。数や文字列の定数(リテラル)は変更できませんが、変数は変更できます。したがって重要な点は変数を使ってあなたのコードを一般化できるということです。例えば、以下のプログラムでは 1 + 1 しか計算することができません。

TextWindow.WriteLine(1+1)

しかし以下のプログラムは多くの種類の足し算が計算できます。このケースでは a と b が変数です。

TextWindow.Write("a? ")
a = TextWindow.ReadNumber()
TextWindow.Write("b? ")
b = TextWindow.ReadNumber()
TextWindow.Write("a+b=")
TextWindow.WriteLine(a+b)

Small Basic での変数の型

多くの他のプログラミング言語では変数の型を整数、実数、文字列というように区別しています。例えば、整数と文字列では内部の表現が違います。

内部表現
整数 -1 FFFFFFFFh
文字列 "-1" 2Dh,31h

しかし Small Basic では、変数の型は一つしかありません。内部で Primitive (プリミティブ)と呼ばれる型(正確にはクラス)です。したがって以下の 2 行は同じ結果になります。

x = -1
x = "-1"

Small Basic の変数の型についてはこちらの litdev によるブログ記事(英語)に詳しく書かれています。

配列

配列は 1 次元以上の一連の値を格納する変数です。最も単純な配列の使い方は以下のような連続するインデックス番号を持つ 1 次元配列です。

f[0] = 0
f[1] = 1
For i =  2 To 10
  f[i] = f[i - 2] + f[i - 1]
EndFor

配列が使えないとコードは以下のようになるでしょう。

f0 = 0
f1 = 1
f2 = f0 +  f1
f3 = f1 +  f2
f4 = f2 +  f3
f5 = f3 +  f4
f6 = f4 +  f5
...
f10 = f8 +  f9

したがって配列を使うことで多くのデータを一連の値(数または文字列)として操作することができます。内部では、配列は特殊な文字 "=" および ";" を使った文字列として表現されます。上記の配列 f を TextWIndow.WriteLine(f) で表示すると、下記の文字列が得られます。

0=0;1=1;2=1;3=2;4=3;5=5;6=8;7=13;8=21;9=34;10=55;

配列の一つの要素は "<インデックス>=<値>;" と表され、その要素をつないだ文字列になっています。もしインデックスや値の中に上記の特殊な文字がある場合は、さらにエスケープ文字と呼ばれる特殊な文字 "\ が使用されます。以下はそのサンプルコードです。

a["="] = ";"
TextWindow.WriteLine(a) ' \==\;;

もし 2 次元以上の配列を作ると、複雑に特殊文字が使われることになります。

Small Basic 配列のもう一つの重要なポイントは、インデックスに文字列を使える点です。他の言語においては連想配列あるいはハッシュと呼ばれています。

命名規則

変数名はアルファベットの文字かアンダースコア ("_") で始まり、アルファベット、数字またはアンダースコアが続きます。この規則はサブルーチンやラベルの名前においても同じです。また Small Basic では、アルファベットの大文字小文字は区別されません。

変数のスコープ

Small Basic では全ての変数がグローバルです。これは変数がプログラム全体のどこからでも読み書きできることを意味しています。 スコープとは変数の有効な範囲のことです。したがって Small Basic の変数のスコープはプログラム全体と言えます。多くのモダンなプログラミング言語にはローカル変数と呼ばれる他のタイプの変数があります。Visual Basic では、サブルーチンの中で定義された変数はローカルになります。そのローカル変数のスコープはサブルーチンの中だけになります。Small Basic では変数のスコープを変更することはできません。

変数の寿命

変数はコンピュータのメモリに記憶されます。したがって変数はコンピュータをシャットダウンしたときに失われます。永続的に利用するデータは File 操作によってローカルファイルに出力しなければなりません。

サンプルプログラム

変数シミュレータ (VMW773) - このプログラムは変数の内容を表示します。左上のテキストボックスに代入文を入力することができます。左下のテキストボックスには代入文の履歴が表示されます。右側にはシミュレートしている変数が表示されます。


関連項目

他の言語