プログラミング言語の歴史において、BASICは多くの人々が最初に触れる「入門の言語」として親しまれてきました。その多様な派生形(ダイアレクト)の中で、国際的な標準を目指して策定されたのがMinimal BASICです。本記事では、この標準規格がどのような背景で誕生し、なぜ市場の主流にならなかったのか、そしてその具体的な仕様について詳しく解説します。
Key Facts
- 策定主体:ANSI(米国国家規格協会)とECMA(欧州コンピュータ標準化機構)が共同で推進。
- 正式名称:ANSI X3.60-1978 または ECMA-55 として1977年に公開。
- 設計思想:1964年のDartmouth BASICをベースにした、極めてシンプルな最小構成の標準。
- 市場の状況:規格策定とほぼ同時に、Microsoft BASICなどの実用的ダイアレクトが市場を席巻した。
- 後継の試み:より高度な「Full BASIC」が計画されたが、市場への影響は限定的だった。
BASICの黎明期と多様化の背景
Minimal BASICが誕生する前、BASICの原点となったのは1964年にダートマス大学で導入されたDartmouth BASICでした。これはFORTRANに影響を受けた対話型言語であり、当時の最先端技術であったタイムシェアリング(一台のコンピュータを複数人で共有する仕組み)や端末による直接操作を組み合わせた画期的なシステムでした。
この成功を受け、GE社などの企業が商用展開し、1960年代末にはほぼすべてのメインフレームプラットフォームにBASICのバージョンが存在するようになりました。その後、HP社がミニコンピュータ向けにインタープリタ方式(コードを一行ずつ解釈して実行する方式)のBASICを導入したことで、さらに普及が加速します。Data General社やWang Laboratories社も独自のBASICを展開し、DEC社も追随しましたが、各社が独自の仕様を追加したため、言語の断片化が進みました。
標準化への道のりとMinimal BASICの誕生
言語の乖離を防ぐため、1974年にANSIの作業グループX3J2と、欧州のECMA TC 21が連携して標準化に着手しました。彼らが目指したのは、あらゆるマシンで動作する共通の定義を作ることでした。1976年に初稿が公開され、1977年12月に最終的な標準規格として採択されました。
Minimal BASICの実態は、1964年当時のDartmouth BASICを形式的な標準(拡張バッカス・ナウア記法)で再定義したものでした。例えば、「GO TO」と「GOTO」の表記揺れを統一し、キーワード間のスペースの扱いなど、曖昧だった仕様をDartmouth方式に統一しました。しかし、この規格はあまりにシンプルすぎて、文字列操作などの実用的な機能が欠けており、実質的には「玩具」に近い構成となっていました。
この不足を補うため、構造化プログラミングを導入したより強力な「Full BASIC(Standard BASIC)」の開発が進められましたが、完成は1987年までずれ込み、時代遅れとなってしまいました。
市場の現実と規格の形骸化
Minimal BASICが策定されていた頃、コンピュータの世界では劇的な変化が起きていました。Altair 8800のようなマイクロコンピュータが登場し、Microsoftが開発したAltair BASICが急速に普及したのです。さらに1977年にはApple II、Commodore PET、TRS-80という「三種の神器」が登場し、MicrosoftスタイルのBASICが事実上の標準(デファクトスタンダード)として定着しました。
標準規格グループにマイクロコンピュータベンダーが参加していなかったため、Minimal BASICは主にメインフレーム向けに利用され、多くの拡張機能が付加される結果となりました。唯一、MicrosoftのBASIC-80(MBASIC)のバージョン5.0がこの規格に準拠しましたが、市場の主流はすでに別の方向へ向かっていました。その後、ISOによる標準化の試みもありましたが、1998年に断念され、ANSIのグループも解散しました。
Minimal BASICの技術的仕様
Minimal BASICは、極限まで機能を絞り込むことで汎用性を確保しています。以下にその主な特徴をまとめます。
プログラム構造と変数
すべての行に0から9999までの行番号を付与する必要があります。また、キーワードの前には必ずスペースを置き、後にもスペースまたは行末が必要です。プログラムの最後は必ずENDで締めくくるルールとなっています。
変数は非常に限定的で、名前は「1文字の英字」または「英字1文字+数字1文字」のみであり、2文字以上の英字名は使用できません。数値範囲は10のマイナス10乗から10の10乗まで、文字列変数は最大18文字に制限されています。配列は数値のみサポートされ、1次元または2次元まで利用可能です。
関数と演算子
組み込み関数は、ABS、ATN、COS、EXP、INT、LOG、RND、SGN、SIN、SQR、TANの11種類のみです。演算子は=, <=, >=, <>が提供されていますが、文字列の比較は等価(=)か不等価(<>)のみで、大小比較はできません。また、論理演算子のAND、OR、NOTは提供されていません。
| 項目 | 仕様・制限 |
|---|---|
| 行番号 | 0 〜 9999 |
| 変数名 | 英字1文字、または英字1文字+数字1文字 |
| 文字列最大長 | 18文字 |
| 数値範囲 | 10-10 〜 1010 |
| サポート関数 | 数学関数11種類(ABS, SIN, COS等) |
| 配列 | 数値のみ、最大2次元まで |
Frequently Asked Questions
Minimal BASICはなぜ普及しなかったのですか?
規格の策定速度が市場の変化に追いつかず、完成した頃にはすでにMicrosoft BASICなどの実用的で機能豊富なダイアレクトがマイクロコンピュータ市場を支配していたためです。
Full BASICとの違いは何ですか?
Minimal BASICが初期のDartmouth BASICを再現した最小構成であるのに対し、Full BASICは構造化プログラミングを導入し、大規模なプログラム開発を可能にするための高度な機能を備えていました。
文字列操作は全くできなかったのでしょうか?
Minimal BASICの標準仕様では、文字列の等価比較などの極めて限定的な操作しかできず、一般的な文字列操作関数は提供されていませんでした。
現代でもMinimal BASICを利用することは可能ですか?
はい。オープンソースで開発されたECMA-55準拠のインタープリタやコンパイラがいくつか存在しており、学習目的などで利用することが可能です。
この規格が残した影響はありますか?
市場を支配することはありませんでしたが、言語の定義を形式的に記述する手法や、テストスイート(NBSIR 77-1420)を用いて準拠性を確認するという標準化のアプローチにおいて、後世の言語策定に影響を与えました。
References
- Wozniak later lamented that the market abandoned HP's string handling and used DEC/MS style, which he derided as "abysmal".