QBasic

ウィキメディア・コモンズには、QBasicに関連するメディアがあります。 QBasicはQuickBASICを基にしたBASIC系の言語の統合開発環境(IDE)、インタプリタ。IDE上で入力されたコードを中間コードに即座にコンパイルし、要求に応じて解釈実行するという特徴をもつ。少なくともPC/AT互換機の英語モードにおいてはDOSと32ビット版Microsoft Windowsで動作し、DOSBoxとDOSEMUを用いればLinuxとFreeBSDでも動作する。コードの即時評価や、コードの部分修正が可能なデバッガといった独自の機能を備え、10年以上にわたって最先端のIDEを提供していた。 初期のマイクロソフトBASICと違って、QBasicはサブルーチンやwhile文などの構造をサポートするQuickBASICのような構造化プログラミング言語である。行番号は互換性のためにサポートされるが推奨されず、説明的なラベルの使用が推奨される。QBasicはユーザ定義データ型（構造体）を限定的にサポートし、いくつかの基本的な型が文字列や数値データを保持するために使用される。 QBasicはGW-BASICを置き換えることを意図した製品である。QuickBASIC 4.5コンパイラを基にしているが、QuickBASICにあるコンパイラとリンカは含まれていない。以下のようにいくつかのOSに標準で付属しているが、これらは日本語環境では正常に動作せず、あらかじめ英語モードに切り替える必要があった。バージョン1.0はMS-DOS 5.0以上、Windows 95、Windows 98/98SE、Windows NT 3.x、Windows NT 4.0[要検証 – ノート]に同梱された。IBMはQBasicに修正を加え、IBM PC DOS 5.xとOS/2 2.0に同梱した。OS/2のコードから作られたeComStationはQBasic 1.0を含んだ。QBasic 1.1はMS-DOS 6.x、およびEDITなしでWindows 95、Windows 98、Windows MEに同梱された。またEDIT.COMはQBASICを必要としなくなり、日本語版に付属するEDIT.COMは日本語環境でも動作するようになった。AT互換機以外では、例えばPC-9800シリーズ版のMS-DOSにQBASICは含まれておらず、EDIT.COMの代わりに独自のスクリーンエディタが付属していたが、PC-9800シリーズ用Windows 95/98ではAT互換機と同様にQBASICなしで動作するEDIT.COMが付属するようになった。Windows 2000より、マイクロソフトはQBasicをオペレーティングシステムに同梱していない（しかし、Windows 2000とWindows XPのためにローカライズされたものがいくつか存在し、フリーウェアとして発表されている）。 （標準添付のMS-DOS Editorと同様に）QBasicは5.0以前（少なくともDOS 3.20まで）のDOSと後方互換である。しかし、Intel 8088やIntel 8086を使用したコンピュータや、Intel 80286を使用したコンピュータの一部では、メモリーのサイズにより動作が非常に遅かったり、全く動作しない場合もある。MS-DOS 7まで、MS-DOS EditorはQBasicを必要とした。EDIT.COMプログラムは、QBasicをエディタのみのモードで起動しているだけであり、またQBASIC.EXEに/EDITスイッチをつけること（すなわちコマンドライン"QBASIC /EDIT"）によってこのモードに入ることができた。 QBasicでは4つのサンプルプログラムが付属していた: Nibbles - ヘビゲームのバリエーション Gorillas - 爆発するバナナを投げるゲームで、Tektronix 405x、後にHP 2640で最初に開発された大砲ゲームを元に生み出された MONEY MANAGER - パーソナルファイナンスマネージャ RemLine - GW-BASICのコードの行番号を削除するプログラム PRINT "Hello, World!" このプログラムは1-10の範囲の中で無作為に選ばれた数を当てることをユーザに要求する。通常存在する「高い」/「低い」のヒントを提供しない。 CLS PRINT "Guess My Number" INPUT "Would you like to play"; choice$ 'INPUT文 - ユーザの入力を受け取る choice$ = UCASE$(choice$) '入力を完全に大文字にする（例:fkld->FKLD） IF choice$ <> "YES" AND choice$ <> "Y" THEN '彼らが遊びたいかどうかを判断する END END IF guesses% = 5 '推測する回数を入力する RANDOMIZE TIMER '乱数発生器をセットする target% = INT(RND * 10) + 1 WHILE guesses% > 0 INPUT "Guess a number: ", guess% '入力（推測）を取る IF guess% = target% THEN '推測が正しいかどうかを判断する PRINT "You win!" END ELSE guesses% = guesses% - 1 PRINT "Sorry, please try again. You have ";guesses%;" guesses left." END IF WEND PRINT "You ran out of guesses, the number was "; target% END QBasicはいくつかの知られているイースター・エッグを持っている。DOSプロンプト上で、QBasicを起動した後タイトル画面が出る前に、Left CTRL+Left SHIFT+Left ALTおよびRight CTRL+Right SHIFT+Right ALTを同時に押すと、プログラマのチームがリストされる。このプログラムは現在のコンピュータでは実行するには速すぎる。古いパーソナルコンピュータ（できればスイッチを入れることによってCPUを4.77MHzに遅くするようなターボボタンを持つもの）または速度を遅くすることが出来るBochsやDOSBoxのようなエミュレータによってもっともうまく実行される。 [脚注の使い方] ^ a b PC/AT互換機版の場合。 ^ 日本語版の製品版Windows 98ではPC/AT互換機版とPC-9800シリーズ版が同梱されている。その名残でPC-9800シリーズ用プリインストール版にもQBASICが含まれていることがあるが、AT互換機用であるので当然ながら意味は無い。 ^ a b c “Differences Between GW-BASIC and QBasic” (2003年5月12日). 2008年6月28日閲覧。 ^ “QBASIC Manual: SUB...END SUB Statement QuickSCREEN”. 2008年6月28日閲覧。 ^ “QBASIC Manual: WHILE...WEND Statement QuickSCREEN”. 2008年6月28日閲覧。 ^ “QBASIC Manual: TYPE Statement QuickSCREEN”. 2008年6月28日閲覧。 ^ “QBASIC Manual: Limits - Names, Strings, and Numbers”. 2008年6月28日閲覧。 ^ “Microsoft BASIC version information”. 2008年6月12日閲覧。 ^ “QBasic Missing from Windows 2000” (2007年3月1日). 2008年6月12日閲覧。 ^ “QBasic - Developer Credits” (1999年7月23日). 2008年6月12日閲覧。