(1) BASICはインタプリタだった
日付を管理していなかったので、正確な記述日時がわかりません。ので、サイト「猿頁」開設日としました。御了承ください。
むかーしの話から始めなきゃならないんですけどね。てゅうか、むしろ始めたい。
BASIC はもともと大型コンピュータしかなかった時代に、大学生のプログラミング言語学習用に、FORTRAN を基にして開発された言語だったそうです。
これを開発されたばっかりのマイコン(今のパソコンの前身ですね。現在家電などの中にチップの形で埋め込まれている「マイコン」とはちょっと違う意味合いだと考えてください)に ROM の形で搭載できるよう、ビル・ゲイツがものすごくコンパクトにまとめてハードウェアメーカー各社に提供したのがマイコン BASIC のそもそもでした。
たぶんこれ、ホントにビル・ゲイツが自分で開発した唯一のプログラムなのではないかしら。
このときの BASIC は、OS の機能をも兼ね備えていました。てゅうか、冗長な OS を別に搭載するだけのメモリが、高価すぎてとても当時のマイコンには搭載できなかったんですね。
で、簡単なラインエディタや、カセット(当時マイコン用の FD なんかまだありませんでしたもん)へのロード/セーブ機能までを内包した、言語なんだか開発環境なんだか OS なんだかよくわからない、電源さえ入れれば自動的に起動して「Ready OK」とか表示されるという、なかなか摩訶不思議な状態だったんです。
電源さえ入れれば BASIC が起動しちゃうわけですので、プログラムファイルってのは基本的にはソースのまんまでさしつかえなかったわけです。
当時コンパイラはあったかなぁ…あったかもしれませんけど、私の記憶にはありません。
さて、時が少しずれてドクター中松の大発明、フレキシブルディスク(確か「フロッピーディスク」ってのはIBMかどっかの商標名だったような記憶が…)の恩恵の波がマイコンにもやってきました。
BASIC も ROM BASIC → DISK BASIC が主流となり、やがて OS 部分が分離・独立して提供されるようになってきたのは1980年代に入ってまもなくだったような。個人的には1983年に、「これからはマイコンも OS の時代だ」「BASIC で事足りているのになぜわざわざマシンスピードを落とすような中間ソフトを介入させるのか」でけんかした覚えが。
この時期は、わやわやといろんな OS が群雄割拠しておりました。8ビットマシン(PC88 や FM8/7、MZ-80…わぁなつかしい)では CP/M の独壇場だったきらいがありますが、16ビットマシン(PC-98、FM16/11、MZ-2000 とかでしたっけ)では CP/M86・OS-9・MS-DOS がシェアを争い、生き残ったのが MS-DOS。
MS-DOS については、新しい16ビットマシン用の OS を IBM が探しているという話を聞いたゲイツが、売り先に困っていた OS を抱えていたソフトハウスから権利もろとも買い上げて、1週間で IBM-PC 用に改造して見事納品した、って逸話がありますね。
世の16ビットマシン(そろそろ「パソコン」と呼ばれるようになってきました。最初に「Personal Computer」って言い出したのは NEC だったかなぁ…ビジネス用としても使えますってあたりを強調したいがための呼称でしたね)の標準 OS は MS-DOS となりましたけれども、その上でプログラムを自作するための言語/開発環境としては、やはり BASIC がトップシェアとなりました。
マイコンに携わっている人間自体は変わらないわけですから、慣れた開発環境のほうがいいに決まってますもんね。
もともと BASIC って遅かったんですけれども(当時のシューティングゲーム…っていってもスペースインベーダーみたいなもんですが…はオールマシン語/16進バイナリ手入力、なんてのがあたりまえでしたし)、OS を介しちゃったもんだからますます遅さに輪がかかっちゃって。
もともとマイコン用 OS ってのは低レベル入出力ルーチンの共有(≒開発効率の向上)と、実行可能ファイルの Load & Run を実現するためのローダーとしての位置付けで普及していったものですから、やっぱワンクッション置く分だけのろいのはしょーがないわけです。
で、ようやくここで「BASIC コンパイラ」が陽の目を見ます。
私がその存在を記憶しているのはMS-DOS 版 BASIC コンパイラからですので、それ以前に存在していたとしてもあまり普及はしていなかったのではないでしょうか。DOS 版コンパイラで当時¥98,000.-(うろ覚え)もしていましたしね。もちろん開発環境とは別売りですぜ。
コンパイラに対する従来の言語/開発環境/動作環境としての BASIC は、インタプリタと呼ばれます。いえ、最初っからインタプリタだったんですけれどもね。
コンパイラの存在が知られるまでは、別にインタプリタかどうかなんてどーでもよかったので、みなさん「BASIC」としか呼んでいませんでしたから。
