「さめがめ」をパソコンミニの SmileBASIC で実装してみた。ソースコードはこちらにあります。
写真が下手すぎだな。スクリーンショットの機能が欲しい…
SmileBASIC は初めて使った。特徴はこんな感じかな。
- 行番号に頼らないのは◎。今どき当たり前だけど、昔の BASIC に慣れた人は「やっぱり行番号への GOTO がわかりやすい」とか言うんだよな。(その価値観を子供向けの「プログラミング教育」に持ち込むのはやめてほしい、と切実に思う。)
- 関数・手続きが定義できるのもよい。また、関数・手続きの中で
VAR, DIM
で変数を宣言すると、ローカル変数とみなされる。これも、今どきの言語では当然実装されているべき。 - 手続きの定義は
DEF name arg1, arg2,...
で、関数の定義はDEF name(arg1, arg2,...)
。つまり、カッコのあるなしで区別される。この仕様はちょっと違和感があるけど、「命令(カッコなしで使う)」と「関数(カッコありで使う)」の定義だと思えばいい。 - 2つ以上の値を返す「命令」は、
DEF name arg1, arg2,... OUT var1, var2,...
と定義する。あまり見たことがない仕様だが、「アドレス渡し」の引数を実装するよりは、わかりやすいかもしれない。 - 配列参照は
a(i)
ではなくてa[i]
。関数と見た目を区別する意味では、この変更は良いと思う。 - 「等しい」演算子は
=
ではなくて==
。また、「等しくない」演算子は<>
ではなくて!=
。配列参照も含めて、このあたりは現在よく使われている言語に合わせてある。 - ビット演算子
(NOT, AND, OR, XOR)
と論理演算子(!, &&, ||)
は分けてある。&&, ||
は C などと同様にショートカット機能を持つ。