QuickBASIC

Microsoft QuickBASICは、かつてマイクロソフトが開発・提供していたプログラミング言語、およびその統合開発環境(IDE)です。特にMS-DOS環境向けに広く普及し、その後のMicrosoft Visual Basicへと繋がる重要な位置を占めました。

MS-DOS版のIDEは、当時のテキストベースの環境としては非常に高機能で、文字を用いてGUIのような視覚的な操作感を提供していた点が大きな特徴です。Macintosh版もリリースされました。

歴史



QuickBASICは1985年にIBM PC向けにその第一歩を踏み出しました。1986年のバージョン2.0で、本格的な統合開発環境が導入され、開発効率が飛躍的に向上します。バージョン3.0ではコプロセッサやより柔軟なループ構文である`do-loop`文に対応しました。バージョン4.0では、ソースコード入力時のリアルタイムな文法チェック機能や、プログラム実行中に処理を一時停止させるブレークポイント機能などが追加され、デバッグ機能が強化されました。

1988年にはMacintosh II向けのQuickBASICが登場します。日本国内では、同年にバージョン4.2がPC-9800シリーズAXシリーズ向けに発売され、日本IBMや富士通からも各社プラットフォーム向けに提供されました。

QuickBASIC単体製品としての最終リリースは、1988年(日本では1989年)のバージョン4.5です。しかし、OS/2アプリケーション開発が可能な上位製品「Microsoft BASIC Professional Development System」には、「QuickBASIC Extended Version」(QBX)という互換性の高い開発環境が含まれており、これは1990年10月(日本では1991年6月)のバージョン7.1まで継続して提供されました。

QuickBASICの後継としては、1992年(日本では1993年)にイベント駆動型プログラミングを容易にした「Microsoft Visual Basic Programming System for MS-DOS」が登場しました。QuickBASICソースコードはこのVB for DOSへ比較的容易に移行できましたが、これがMS-DOSVisual Basicの最初で最後のリリースとなり、その言語仕様はWindows版Visual Basicとは互換性がありませんでした。

開発環境



QuickBASICのIDEは、当時の技術水準において非常に先進的な機能を持っていました。

コンパイラ・インタプリタ



プログラムの実行形式を生成するコンパイラと、コードを逐次実行するインタプリタの機能を提供しました。コンパイラは、実行ファイルサイズが小さい「ランタイム版」と、より高速に動作する「独立版」のバイナリを生成できました。インタプリタ実行時には、強力なデバッガ機能を利用できました。また、複数のソースファイルを個別にコンパイルし、それらをリンクして一つのプログラムを作成する分割コンパイルや、プロジェクト管理にも対応していました。

エディタ



ソースコードを記述するためのエディタは、入力中に構文エラーを検出し、開発者に知らせる機能を搭載していました。テキストの範囲指定、コピー、ペースト、検索、置換、インデント調整など、現代の多くのエディタに通じる豊富な編集機能がありました。また、サブルーチンや関数の単位でコードを表示・編集することが可能でした。日本のPC-9801版では、標準的なテキスト形式に加え、N88-BASICのバイナリ形式でのファイル読み込み・保存にも対応していました。

オンラインヘルプ



コード編集作業を中断することなく、必要な情報を参照できるオンラインヘルプ機能が利用できました。

デバッガ



プログラムのバグを発見・修正するためのデバッガは、以下の主要な機能を提供しました。

ブレークポイント: プログラム実行を指定した行で一時停止させる機能。
ステップ実行: プログラムを1行ずつ実行する機能。
ウォッチ: プログラムの実行中に変数や式の現在の値を監視・確認する機能。

言語仕様



QuickBASICは、それまでのMicrosoft BASIC(例えばGW-BASIC)と比較して、構造化プログラミングをサポートするための機能が大幅に拡張されました。

データ型



基本的な数値型(整数型、単精度・倍精度浮動小数点数型)、文字列型に加え、多次元配列や、複数の異なるデータ型をまとめて扱える構造体が導入されました。

変数



変数のスコープとして、プログラム全体で有効なグローバル変数と、特定のサブルーチンや関数内でのみ有効なローカル変数を区別できるようになりました。また、値が保持される期間によって、静的なスタティック変数と、ブロックに入るたびに初期化される(C言語のauto変数に相当する)変数を扱うことができました。

制御構造



プログラムの流れを制御するための構文が強化されました。

ループ: `for ... next`, `while ... wend`, `do ... loop` といった繰り返し処理のための構文を提供しました。特に`do ... loop`は、条件をループの開始前または終了後に指定できるなど、柔軟な記述が可能でした。
* 分岐: 条件に応じて処理を切り替える構文として、1行で記述できる`if 条件 then ... else ...` 形式や、複数行にわたって条件分岐を詳細に記述できる`if 条件 then ... else ... end if` 形式がありました。また、C言語のswitch文に似た`select case`構文も利用でき、整数だけでなく文字列なども条件に指定でき、値の範囲を指定することも可能でした。

関数・サブルーチン



処理のまとまりを再利用可能な単位として記述するためのサブルーチンや、値を返す関数を定義できました。サブルーチンや関数から抜け出すための`Exit Sub`や`Exit Function`といったステートメント(C言語のreturnに相当)が用意されていました。また、自身を呼び出す再帰呼び出しもサポートしていました。

割り込み処理



特定のイベント発生時に、実行中の処理を中断してあらかじめ指定した処理(割り込みハンドラ)を実行する機能がありました。割り込みを発生させられるタイミングとしては、エラー発生時、キーが押された時、タイマー満了時、音楽演奏バッファの状況変化時などがありました。割り込み処理が完了した後、`resume`ステートメントを用いて中断された元の処理に復帰することも可能でした。

QuickBASICは、その後のGUIベースのプログラミング環境であるVisual Basicへの橋渡し役となり、多くのプログラマーにとってBASIC言語による本格的な開発を可能にした画期的な製品でした。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。