QBasic

QBasic
パラダイム 手続き型Procedural
登場時期 1991年 - 2000年
開発者 マイクロソフト
最新リリース 4.5 /
影響を受けた言語 QuickBASIC、GW-BASIC
影響を与えた言語 FreeBASIC, QB64, SmallBasic
プラットフォーム MS-DOSWin95Win98WinMeIBM PC DOSOS/2eComStation
ライセンス マイクロソフトによるソフトウェア利用許諾契約
テンプレートを表示
ウィキメディア・コモンズには、QBasicに関連するメディアがあります。

QBasicQuickBASICを基にしたBASIC系の言語の統合開発環境(IDE)、インタプリタ。IDE上で入力されたコードを中間コードに即座にコンパイルし、要求に応じて解釈実行するという特徴をもつ[1]。少なくともPC/AT互換機の英語モードにおいてはDOSと32ビット版Microsoft Windowsで動作し、DOSBoxとDOSEMUを用いればLinuxFreeBSDでも動作する。コードの即時評価や、コードの部分修正が可能なデバッガといった独自の機能を備え、10年以上にわたって最先端のIDEを提供していた。

初期のマイクロソフトBASICと違って、QBasicはサブルーチンwhile文などの構造をサポートするQuickBASICのような構造化プログラミング言語である[2][3]行番号は互換性のためにサポートされるが推奨されず、説明的なラベルの使用が推奨される[1]。QBasicはユーザ定義データ型(構造体)を限定的にサポートし、いくつかの基本的な型が文字列や数値データを保持するために使用される[4][5]

歴史

QBasicはGW-BASICを置き換えることを意図した製品である。QuickBASIC 4.5コンパイラを基にしているが、QuickBASICにあるコンパイラとリンカは含まれていない。以下のようにいくつかのOSに標準で付属しているが、これらは日本語環境では正常に動作せず、あらかじめ英語モードに切り替える必要があった。バージョン1.0はMS-DOS 5.0以上[注 1]Windows 95[注 1]Windows 98/98SE[注 2]Windows NT 3.xWindows NT 4.0[要検証 – ノート]に同梱された。IBMはQBasicに修正を加え、IBM PC DOS 5.xとOS/2 2.0に同梱した[6]。OS/2のコードから作られたeComStationはQBasic 1.0を含んだ。QBasic 1.1はMS-DOS 6.x、およびEDITなしでWindows 95Windows 98Windows 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をオペレーティングシステムに同梱していない[7](しかし、Windows 2000Windows XPのためにローカライズされたものがいくつか存在し、フリーウェアとして発表されている)。

(標準添付のMS-DOS Editorと同様に)QBasicは5.0以前(少なくともDOS 3.20まで)のDOSと後方互換である。しかし、Intel 8088Intel 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のコードの行番号を削除するプログラム[1]

"Hello world"

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を同時に押すと、プログラマのチームがリストされる[8]。このプログラムは現在のコンピュータでは実行するには速すぎる。古いパーソナルコンピュータ(できればスイッチを入れることによってCPUを4.77MHzに遅くするようなターボボタンを持つもの)または速度を遅くすることが出来るBochsDOSBoxのようなエミュレータによってもっともうまく実行される。

脚注

[脚注の使い方]

注釈

  1. ^ a b PC/AT互換機版の場合。
  2. ^ 日本語版の製品版Windows 98ではPC/AT互換機版とPC-9800シリーズ版が同梱されている。その名残でPC-9800シリーズ用プリインストール版にもQBASICが含まれていることがあるが、AT互換機用であるので当然ながら意味は無い。

出典

  1. ^ a b c “Differences Between GW-BASIC and QBasic” (2003年5月12日). 2008年6月28日閲覧。
  2. ^ “QBASIC Manual: SUB...END SUB Statement QuickSCREEN”. 2008年6月28日閲覧。
  3. ^ “QBASIC Manual: WHILE...WEND Statement QuickSCREEN”. 2008年6月28日閲覧。
  4. ^ “QBASIC Manual: TYPE Statement QuickSCREEN”. 2008年6月28日閲覧。
  5. ^ “QBASIC Manual: Limits - Names, Strings, and Numbers”. 2008年6月28日閲覧。
  6. ^ “Microsoft BASIC version information”. 2008年6月12日閲覧。
  7. ^ “QBasic Missing from Windows 2000” (2007年3月1日). 2008年6月12日閲覧。
  8. ^ “QBasic - Developer Credits” (1999年7月23日). 2008年6月12日閲覧。


Windowsコマンドラインプログラムと組み込みコマンド
ファイルシステム
  • cd (chdir)
  • dir
  • popd(英語版)
  • pushd(英語版)
  • tree(英語版)
  • ファイル管理
    • attrib(英語版)
    • cacls
    • cipher
    • compact
    • copy(英語版)
    • del(英語版) (erase)
    • deltree(英語版)
    • expand
    • icacls
    • makecab
    • md (mkdir)
    • move(英語版)
    • rd (rmdir)
    • recover(英語版)
    • ren(英語版) (rename)
    • replace(英語版)
    • rmdir
    • robocopy(英語版)
    • xcopy(英語版)
    ディスク管理
    • CHKDSK
    • convert(英語版)
    • defrag
    • diskcomp(英語版)
    • diskcopy(英語版)
    • diskpart(英語版)
    • fdisk(英語版)
    • format(英語版)
    • label(英語版)
    • SUBST
    • scandisk
    • sys(英語版)
    • vol(英語版)
    • vssadmin(英語版)
    プロセス管理
    • exit(英語版)
    • kill
    • PowerCFG(英語版)
    • runas(英語版)
    • sc
    • shutdown
    • start(英語版)
    • taskkill
    • tasklist(英語版)
    レジストリ
    ユーザ環境
    • date
    • mode(英語版)
    • path(英語版)
    • set
    • setx
    • time(英語版)
    • title(英語版)
    • ver(英語版)
    • whoami
    テキスト処理
    • comp(英語版)
    • edit
    • edlin
    • fc
    • find
    • findstr(英語版)
    • print(英語版)
    • type(英語版)
    スクリプト
    ネットワーク
    メンテナンス
    • driverquery(英語版)
    • msiexec
    • ntbackup(英語版)
    • sfc
    • systeminfo(英語版)
    • w32tm(英語版)
    • WBAdmin(英語版)
    • winsat
    • wmic
    ブート管理
    ソフトウェア開発
    • debug(英語版)
    • exe2bin(英語版)
    • QBasic
    その他
    • CLS
    • help(英語版)
    典拠管理データベース: 国立図書館 ウィキデータを編集
    • イスラエル
    • アメリカ
    • チェコ