MCL(35)

インデックスに戻る

前のMCLへ  次のMCLへ

▼ My Computer Life (35)

35. X-BASIC

 そして、私は晴れて高校生になった。
 で、なんでそんな話になったのか、ちょっと忘れたんだけど。あれは体育の時間だったかな。4月だか5月だかで、まだちょっと寒い時期だった。高校1年のこの時期というと、まだお互いほとんど知り合ってないような頃だ。まあちょこっと仲良くなった連中でつるんで、寒いからどっか端っこの方で震えていた。
 その時に、同じクラスの友人の一人が、俺はX68000を持っているという話になった。元々私とは仲良くやっていた部類だったし、それに家が近い(同じ市内だが、中学は別だった)というのもあり、遊びに行く事になった。仮に彼の名前をKとしておこう。
 Kの家にあったのは、確かEXPERTだった。元々パソコンに大きな興味があったわけではなかったのだが、ゲームマシンの一種として買ったらしい。
 それでまあ遊んでいるうちに、じゃあプログラムを作ってみようぜという話になり、とりあえず私はX-BASICのマニュアルを借り、うちに持ち帰って研究してみた。

 今考えても、X-BASICというのはなかなか魅力的な開発環境だった。
 以前(#26)にも少し書いたが、再び多少説明する。
 X-BASICはX68000シリーズに標準装備されている、BASIC系の開発言語である。最大の特徴は、func文による関数が取り入れられ、その用法は従来のBASICにおける関数、あるいはサブルーチンとは異なり、C/C++のそれとほぼ同一であるということ。関数内ではローカル変数を使う事が可能で、モジュール化が進んでいる。のちに主流となる、構造化BASICの機能を先取りしていると言える。
 その他、switch文など、従来のBASICよりも更にC/C++に近い文法形態を持っている。これらの機能は意図的に作られていて、それと言うのも元々BASIC→Cのトランスレートを前提にしていたのだ。実際、のちに発売されたCコンパイラでは、BAStoCというコンバータが同梱され、C言語のプログラムへと変換する事が出来た。
 X-BASIC自体は、実はかなり動作が遅い。インタープリタだからというのもあるけど、なまじ言語仕様を柔軟にした分、プログラムの解釈等に時間を食うようになったのではないかと推測する(あとは単に作りが甘いとか)。

 もう一つの特徴として、外部関数による拡張が容易というのもある。
 元々X68000は、グラフィックやスプライト、FM音源やADPCMなど、ハードウェア的にかなり豊富な機能がある。X-BASICはこれらの機能を一通り使えるのだが、それは外部関数という仕組みで提供されている。
 外部関数というのはその名の通り外部にある関数で、元々のBASICに組み込まれているわけではない。X-BASICが起動する時に、それらの外部関数群を取り込む。そうすると、BASICのプログラムからあたかも組み込みの関数であるかのように扱える。
 分かりやすく書くと、X-BASICは機能の拡張がとても容易だという事だ(もちろん、文法規則や演算規則そのものを変える事はできないが)。で、スプライトだの音楽だのは、この機能を使って提供されている、という事。
 この外部関数は、ユーザが自分で作る事も可能である。いくつかのやり方を守れば、アセンブラやC言語で組む事も可能である(というより、実質そのどちらかである。外部関数をわざわざBASICで作る人はいないだろう。もちろん、Pascalで組んだ人だっているかも知れないが…)。
 先ほど、X-BASICは遅いと書いたが、どうしても時間のかかる作業をモジュールにして、それをアセンブラやCで書いて外部関数化する事により、BASICの利点は保ったまま、実行速度を上げられる。

 私はここまで、BASICをほぼ唯一の習得言語としていた。小学〜中学くらいにかけて、MSXの(つまりZ80の)アセンブラを少しだけかじったが、何しろその時はいわゆるハンドアセンブル→無理矢理入力→実行して暴走の繰り返しで、全然トライ&エラーが出来なかったので、使えるようになったとは言いづらい。その他の言語には一切触っていない。LOGOを少し勉強したくらい。
 そういうわけで、このX-BASICの仕組みは新鮮に映った。

 その後、Kの家に遊びに行き、実際にプログラムを組み立ててみた。
 X-BASICの、関数を多用したプログラミングというのは、従来のBASICの組み方とは異なり、考え方を変える必要がある。しかし、私はその新しい組み方にすぐ慣れてしまった。関数の使い方、利点は一発で把握したと言ってよい。私自身、最初はそういう変化に戸惑うかなー、と思っていたのだが、実際には「こりゃ便利だ」と喜んで使うようになった。普通この手のパラダイムの変更には時間がかかるものなのだが、これに関しては驚くくらい簡単に自分の物になった。
 ま、その時はそういう小さな動作確認程度だったんだけど、X-BASICとの出会いはそんな感じだった。


前のMCLへ  次のMCLへ

戻る

TOM 2004