プログラミング言語の歴史において、BASICは多くの初心者が最初に触れる言語として親しまれてきました。その中で、Full BASIC(標準BASICまたはANSI BASICとも呼ばれる)は、米国国家規格協会(ANSI)と欧州コンピュータ標準化機構(ECMA)が共同で策定した国際標準規格です。単なる入門用言語を超え、構造化プログラミングや行列演算、高度なファイル操作などの機能を盛り込んだ、非常に野心的な仕様として設計されました。
Key Facts
- 策定主体: ANSI X3.60グループおよびECMAによる共同開発。
- 主要規格: ECMA-116 (1986年)、ANSI X3.113-1987 (1987年)、ISO/IEC 10279:1991 (1991年)。
- 開発の経緯: 1974年開始の「Minimal BASIC」を経て、より高度な「Full BASIC」へと移行。
- 市場の結果: 規格策定に時間がかかりすぎたため、普及した頃にはMicrosoft BASICなどの事実上の標準(デファクトスタンダード)に敗北し、ほとんど普及しなかった。
- 技術的特徴: 最大31文字の変数名、固定小数点演算、高度な入出力制御などを導入。
標準化への道のりと二段階のアプローチ
BASICの標準化は、大きく分けて二つの段階で進められました。まず1974年から着手されたのがMinimal BASICです。これは、1964年に誕生したDartmouth BASICをベースに、異なるプラットフォーム間でも正しく実装できるよう、最小限の共通機能を定義することを目的としていました。しかし、この段階では行列演算などの便利な機能さえ除外されており、後年、当時の関係者から「おもちゃのような言語だった」と評されるほど限定的な内容でした。
Minimal BASICの策定後、焦点はより強力な「Structured BASIC」に基づくFull BASICへと移りました。しかし、標準化委員会内での意見対立や仕様の肥大化により、開発は停滞。当初の計画から大幅に遅れ、最初の草案が登場したのは1986年になってからでした。
技術的仕様の詳細
プログラム編集と基本構造
Full BASICは行エディタ環境での利用を想定しており、行番号を用いて編集や削除を行います。行番号の範囲は1から50,000までと広く、Minimal BASIC(0〜9999)よりも大幅に拡張されました。また、1行の論理的な長さは最低132文字で、アンパサンド(&)を用いて複数行にまたがる記述が可能でしたが、この記号が文字列結合演算子としても使われていたため、解析上の複雑さを招きました。
変数とデータ型
従来のBASICで一般的だった1文字や数字混じりの短い変数名から脱却し、最大31文字までの長い変数名が導入されました。これによりコードの可読性は向上しましたが、一方でキーワードと変数名の区別を明確にするため、キーワードの前後には必ずスペースを入れる必要が生じました。
データ型については、数値変数に加え、ドル記号($)を末尾につける文字列変数が導入されました。さらに、精度を指定できる固定小数点演算(例:OPTION ARITHMETIC FIXED*8.2)という高度な機能も備えていました。
配列と行列演算
配列の定義にはDIMキーワードが使用されます。特筆すべきは、TOキーワードを用いて下限と上限を直接指定できる点です(例:DIM A(100 TO 200))。また、行列(マトリクス)の再定義を可能にするMAT INPUTなどの機能も実装されていました。
入出力とファイル操作
ユーザー入力において、プロンプト表示にPROMPTキーワードを導入し、さらにTIMEOUTやELAPSEDを用いて、入力待ち時間の設定や経過時間の取得ができるようになりました。ファイル操作では、磁気テープなどの順次アクセスデバイスに対応するため、SEQUENTIALやSTREAMといった詳細なモード設定が盛り込まれました。
普及の失敗と歴史的背景
Full BASICが正式に批准されたのは1986年から1987年にかけてのことでしたが、その頃にはすでに「マイクロコンピュータ革命」が完了していました。数千万台のホームコンピュータで動作していたのは、規格化されたBASICではなく、Microsoft社が提供した事実上の標準(デファクトスタンダード)でした。
また、教育現場においても、BASICが担っていた役割は次第にPascalなどの言語に取って代わられていきました。規格策定に時間をかけすぎた結果、完成したときにはすでに市場のニーズが変わっていたという、技術標準化における典型的な失敗例となりました。
| 項目 | Minimal BASIC | Full BASIC |
|---|---|---|
| 行番号の範囲 | 0 〜 9,999 | 1 〜 50,000 |
| 変数名の長さ | 極めて短い(1文字等) | 最大31文字 |
| 主要機能 | 最小限の基本機能のみ | 構造化プログラミング、行列演算、高度なファイル操作 |
| データ型 | 数値のみ | 数値、文字列、固定小数点数 |
| 標準化時期 | 1977年批准 | 1986年〜1987年批准 |
Frequently Asked Questions
Full BASICはなぜ普及しなかったのですか?
規格の策定に時間がかかりすぎたためです。議論が行われている間にマイクロコンピュータが普及し、Microsoft BASICなどのデファクトスタンダードが市場を支配してしまったため、正式な規格が登場したときにはすでに時代遅れとなっていました。
Minimal BASICとFull BASICの最大の違いは何ですか?
Minimal BASICが異なる環境で動作させるための「最小限の共通分母」を定義したのに対し、Full BASICは構造化プログラミングや高度な数学演算、複雑なファイル制御など、実用的なアプリケーション開発に必要な機能を網羅したフルセットの仕様であった点です。
変数名の変更によってどのような影響がありましたか?
最大31文字まで変数名が使えるようになり可読性が向上しましたが、解析上の理由から、キーワード(FORやTOなど)の前後には必ずスペースを入れなければならなくなりました。これにより、以前のBASICのようなスペースを省略した記述ができなくなりました。
True BASICとはどのような関係がありますか?
標準化プロセスの遅さに失望したDartmouth Collegeの関係者が、Full BASICの標準仕様の一部を取り入れて開発したのがTrue BASICです。しかし、これも市場で広く普及することはありませんでした。
ISO規格としてのFull BASICはどうなりましたか?
1991年にISO/IEC 10279:1991として標準化されました。ECMAとANSIの規格を統合する形で策定され、2024年にもレビューと確認が行われていますが、実用的な実装例は極めて少ない状況です。
References
- In an article in 1984, Luehrmann estimated there to be 10 million such machines.
- The
OPTIONALkeywords does not appear in the examples in the standards document but is required. -
IMAGEworks in the same way thatFORMATdoes in FORTRAN.