doc drawn up: 2006-01-15 .. 2012-11-25

BASIC 略記

はじめに

最近ゲームプログラミングに挑戦してみて、QBASIC という Microsoft 製の BASIC を使う機会がありました(参照:『勇者ハニワ』)。太古の昔に、Sharp 製 X-68000 用の X-BASIC や、NEC 製 PC-9801 用の N88-BASIC を使った経験があるのですが、その時は単なる数値計算のためにしか使わなかったので、FORTRAN 77 との違いをあまり感じませんでした。今回、BASIC を使ったのは、ゲームという、入出力制御を主眼とするものなので、その時の使い方とは全く異っています。

もっと昔の子供の時分、自分がプログラミング能力とは無縁だった時代には、電波通信社の『ベーシックマガジン』(通称ベーマガ)に掲載されている投稿プログラムを通じてお馴染みの BASIC だったはずなんですが、「高度なプログラムはどうせ BASIC では不可能なんだろう」という先入観があって、ほとんど興味が湧きませんでした。しかし実際の所、それがほとんど思い違いだったと言えます。当時、マシン語やアセンブリ言語がもてはやされていた理由は「当時の PC の低い性能では BASIC だと速度面での十分なパフォーマンスが得られない」というのが本当のところでしょう。

今さらながら BASIC に触れてみて、その存在価値を再発見した思いです。特にゲームプログラミングを学習するには、BASIC ほど最適な言語環境はないのではないかと思います。GUI-OS の時代になって(かつてあったような DOS 環境の)BASIC が存続していないのが残念に思えます。QBASIC のように、出力(画像)と入力(キーボード)が標準命令として用意されていて、しかも都度実行インタプリタ型であるという言語体系は、入門者にとっては大変重要だと思うのです(註)。

本当に簡単なメモ

  1. BASIC と違って、C/C++ による Windows ゲームプログラミングから入門する場合だと、C/C++ そのものの勉強を始めようとしていたのに、気付かない内にいつの間にか Windows API だとか DirectX API の話に迷い込んでいきます。その挙句「ああ、Windows API だとか DirectX API のような膨大な体系を理解できて『そうなってから初めて』ゲームプログラミングを始める資格が得られるんだ。ゲームプログラマって凄いなぁ……(溜息)」なんてことになって挫折するパターンがあると思います。僕自身は言語は Perl が一番性に合ったみたいで、初心者レベルを脱するまで挫折することなく夢中になって使い込んできた言語なんですが、後になってこの Perl が C/C++ プログラマには「難しい言語」とされているというのを聞いて、不思議な気分になりました。子供時代の偏見で BASIC はアマチュア用の言語で、マシン語やアセンブリ言語、そして C 言語こそがプロフェッショナルな最高レベルの言語だというイメージから、未だに C やその系統である C++/Java を敬遠し続けていたからなのです。
  2. (2009-10-22)Linux の gedit 用のソースコードの色分け表示用の定義ファイル(basic.lang: /usr/share/gtksourceview-2.0/language-specs に置いて使う)を作成した。完全とは言い難いが、何も色分けされない状態に比べたら見易くなって便利だと思う。

参考


<coding>