|
|
(同じ利用者による、間の1版が非表示) |
1行目: |
1行目: |
− | {{Otheruses|プログラミング言語|その他の用法|ベーシック}}
| |
− | {{プログラミング言語}}
| |
− | '''BASIC'''(ベーシック)は[[手続き型プログラミング|手続き型プログラミング言語]]のひとつ。
| |
| | | |
− | 名前は「{{lang|en|'''b'''eginner's '''a'''ll-purpose '''s'''ymbolic '''i'''nstruction '''c'''ode}}」(「初心者向け汎用記号命令コード」を意味する)の[[バクロニム]]である。
| + | '''BASIC'''(ベーシック) |
| | | |
− | ==概要==
| + | 《Beginner's All-Purpose Symbolic Instruction Code》 |
− | いくつかの点で[[FORTRAN]]に似ている。構文は、FORTRANの構文を知っていれば全然違うと感じるはずだが、FORTRANの文法が基になっているとしばしば解説されている。初心者向けの[[プログラミング言語]]として、[[1970年代]]以降の[[コンピュータ]](特に[[パーソナルコンピュータ|パソコン]])で広く使われた。標準規格である[[#Full BASIC|Full BASIC]]の仕様は、よく知られているBASICとは異なり構造化などがきちんとしており、また [[Microsoft Visual Basic .NET]] の仕様はよく知られているBASICとは全く異なりむしろFull BASICに近い、現代における有力な言語環境のひとつである。
| |
| | | |
− | ===プログラム例と出力例===
| + | プログラミング言語の一。1964年に米国ダートマス大学で開発され、会話型で覚えやすく使いやすいため、初期のパーソナルコンピューターに広く使用された。米国マイクロソフト社が開発したVisual BASICなどの派生言語がある。 |
− | 画面に次のように入力したとする。
| |
− | <source lang="basic">
| |
− | 10 REM 5つ数える
| |
− | 20 FOR I = 1 TO 5
| |
− | 30 PRINT I
| |
− | 40 NEXT
| |
− | RUN
| |
− | </source>
| |
− | <code>RUN</code>命令を入力すると、それ以前に入力された[[プログラム (コンピュータ)|プログラム]]が実行される。この場合の出力は次のとおり。
| |
− | 1
| |
− | 2
| |
− | 3
| |
− | 4
| |
− | 5
| |
− | また、プログラムに編集を加えたい場合、続いて例えば次のように入力する。
| |
− | <source lang="basic">
| |
− | 10 REM 5つ数える(“3”だけ飛ばす)
| |
− | 25 IF I = 3 THEN GOTO 40
| |
− | RUN
| |
− | </source>
| |
− | このように入力すると、<code>10</code>で始まる行が書き換えられ、20行目と30行目の間に25行目が挿入される。この場合の出力は次のとおり。
| |
− | 1
| |
− | 2
| |
− | 4
| |
− | 5
| |
− | | |
− | ===主な特徴===
| |
− | *歴史的な経緯から、[[FORTRAN]]やパソコンでは[[C言語]]と比較されることが多い。
| |
− | *[[高水準言語]]である。
| |
− | *([[ダートマスBASIC]]はコンパイルしているが)[[インタプリタ]]として実装された処理系が多い。
| |
− | *編集環境を兼ねた一種の[[シェル]]のような[[コマンドラインインタプリタ]]を持つものも多いが、[[LISP]]の{{仮リンク|read-eval-print loop|en|read-eval-print loop}}(REPL)のように洗練されたものではない。
| |
− | *古いBASICではすべての行頭に[[行番号]]を必要とし、GOTO文などの飛び先は行番号で指定する。行番号は、[[テレタイプ端末]]時代に処理系と一体の行指向[[テキストエディタ]]で扱うのに便利であった。現在でも[[互換性]]のために両者を残している処理系もある。
| |
− | *本来は、'''RUN'''などのように、プログラム外から処理系に指示を与えるものは[[コマンド (コンピュータ)|コマンド]]('''命令''')、'''FOR'''などのようにプログラム中のものは'''ステートメント'''([[文 (プログラミング)|文]])、と、本来は(ダートマスBASICでは)明確な区別があったが、次第に混同されていった。
| |
− | *プログラム中の[[予約語]](キーワード)には文の他に関数がある。それらと同じ名前を変数に使うことはできない(Tiny BASIC等では変数は一文字といったものも多い)。
| |
− | *文字列変数の内容等を除いて、大文字と小文字を区別しない。入力の時点で全て大文字に変換される処理系もあった。
| |
− | *算術[[演算子]]以外の[[記号]]は極力使わない。論理演算子は<code>AND</code>、<code>OR</code>、<code>XOR</code>、<code>NOT</code>である。[[括弧]]は[[演算の優先順位]]も、[[サブルーチン|関数]]の[[引数]]も、[[配列]]もすべて「<code>()</code>」のみを用いる。ブロックも「<code>{}</code>」のような括弧ではなく「<code>FOR</code>文から<code>NEXT</code>文までの間」といった構文により指定する。
| |
− | *代入と比較はどちらも「<code>=</code>」である。代入はLET文とするのが本来の形だが(文は全てキーワードから始まる、という規則により)、「<code>A = 1</code>」のような、キーワード「LET」を省略した代入の構文が好まれた。
| |
− | *[[第一級オブジェクト|ファーストクラス]]の型は数値型と[[文字列]]型である。数値は[[浮動小数点数]]だけのものもあるが、整数型などがあるものもある。文字列型の変数名は末尾に「<code>$</code>」を付ける、といった規則のものもある。
| |
− | *LEFT$, MID$, RIGHT$など、文字列操作関数が豊富なことが多い。
| |
− | *明示的な変数宣言を必要とせず、変数を使用し始めたところで宣言したものと解釈される。
| |
− | *使ったことのない変数を使うと勝手に変数が作られ、また中身は自動的に初期化される(数値型は0、文字列型は[[空文字列]])。
| |
− | *プログラムは先頭行から実行される。
| |
− | | |
− | ==歴史==
| |
− | [[1964年]]、[[アメリカ合衆国|米国]][[ダートマス大学]]にて、数学者[[ジョン・ジョージ・ケメニー|ジョン・ケメニー]]([[1926年]]-[[1992年]])とトーマス・カーツ([[1928年]]-)により、教育用などを目的として[[ダートマスBASIC]]が開発された。これは同時期にともに開発された、[[タイムシェアリングシステム]][[DTSS]]上の[[ラインエディタ]](テレタイプ端末環境)で利用されるよう設計されていた。
| |
− | | |
− | BASICは、[[ゼネラル・エレクトリック|GE]]との提携を経て、学外にも普及した。ダートマス大学のオリジナルは[[コンパイラ]]だったが(ただし、完全オンメモリ動作・1パスという、きわめて軽く動作するものであり、言語仕様もそのような「軽い」コンパイルのために設計されている)パソコンなどの商用版では基本機能を最小限にしたうえで[[インタプリタ]]として実装されることが多く、独自の発展を遂げた。
| |
− | ===8ビットパソコンの普及とBASIC===
| |
− | [[1970年代]]末から[[1980年代]]初頭にかけて、[[8ビット]][[CPU]]を使った自作[[コンピュータ]]で[[Tiny BASIC]]を動かし、その上でゲームを実行させる([[スタートレック]]ゲーム等)のがホビーストの目標となった。
| |
− | | |
− | 同時に、<!--1980年代初頭から-->メーカー製の[[ターンキーシステム]]にBASICインタプリタが[[Read Only Memory|ROM]]の形で搭載されはじめ、一気に当時のマイコンにおける標準言語の立場を獲得した。この時に搭載されたBASICインタプリタはほとんどが[[マイクロソフト]]製で、同社躍進のきっかけとなった。また、マイクロソフト製BASICは、中間コードを使用する構造になっており、また汎用機を再現した極めて[[エミュレータ]]に近いランタイム形式の実行環境だったため、当時の互換性が皆無なコンピュータ事情の中でも、スクリプト自体の移植は容易だった。
| |
− | | |
− | その後、([[MS-DOS]]発表以前の)パソコンに、操作を提供するのにも使われ、しばしば[[ROM-BASIC]]として[[ハードウェア]]に組み込まれた。
| |
− | 電源投入後にエディタ込みで利用できることから、現在における、シェル、[[インタフェース (情報技術)|インタフェース]]としての役割ももち、ローダなどの役割も担った。
| |
− | 入力の効率化のため、省略形式での入力や、1980年代後半には、[[漢字]]の利用や、[[ラベル]]、[[インデント]]への内部的な対応、C言語への橋渡しなど、様々な機種ごとの独自の発展を遂げた。
| |
− | | |
− | 他の言語の進化に伴いBASICはあくまで初心者向けの言語でありプロにとっては論外のものということになった。しかし一方でプログラミングの専門家以外の人がプログラミングをするのにBASICが重宝されることも依然多い。例えば[[UBASIC]]や[[十進BASIC]]はいずれも数学者が開発したものである。
| |
− | また、当時のPCの処理速度から、処理の高速化が必要な部分はデータ形式でアセンブリ言語による処理を呼び出すなどの手法もとられた。
| |
− | | |
− | ===互換性とBASIC===
| |
− | [[ファイル:N-88BASIC_v1.0.gif|thumb|[[PC-8800シリーズ]]のN88BASIC]]
| |
− | 各メーカーのパソコンに標準搭載されたBASICは、機種ごとに画面操作やI/O直接操作などの独自拡張が行われた。マイクロソフト製([[MS-BASIC]]、[[BASICA]]、[[G-BASIC]]、[[GW-BASIC]]の移植版)のものや、その命令体系を引継ぎ実装したものである、[[F-BASIC]]、[[Hu-BASIC]]、[[カタカナ]]で表現するG-BASIC(前述のマイクロソフトの物とは異なる)、PETに由来する[[S-BASIC]]、[[SEGA]]のベーシックカートリッジ、Cを意識したX-BASICなど各社が独自にBASICを開発し、いわゆる「[[方言 (プログラミング言語)|方言]]」が生まれた。この結果、たとえBASICのメーカーが同じでも「あるパソコンで作ったBASICプログラムは、他のパソコンではそのままでは動かすことができない」ことの方がずっと多かった。
| |
− | | |
− | もっとも当時は群雄割拠の時代でもあり、特に市販ソフトが満足に出なくなったパソコンにおいては、BASICは重要な役割を果たした。
| |
− | | |
− | ====方言の例====
| |
− | *[[カーソル]]位置を指定する<code>LOCATE</code>文は、別の処理系では<code>CURSOR</code>文
| |
− | *音楽を演奏する<code>PLAY</code>文、<code>MUSIC</code>文とそれらに記述される[[Music Macro Language|MML]]
| |
− | *画面モードを指定する<code>CONSOLE</code>文
| |
− | *[[スプライト (映像技術)|スプライト]]機能を使用する命令
| |
− | *VRAMと配列変数の内容をやりとりする命令
| |
− | *条件付きループを実現する<code>WHILE</code>〜<code>WEND</code>
| |
− | *<code>GOTO</code>, <code>GOSUB</code>文の飛び先を指定するラベル
| |
− | *<code>CALL</code>, <code>CMD</code>, <code>SET</code>などで始まる命令文
| |
− | | |
− | ====メイン・メモリの制限による処理系の実装例====
| |
− | 初期のTiny BASICはともかくとしても、BASIC実装処理系のメイン・メモリの制限により言語仕様が極めて制限された実装が存在した。
| |
− | | |
− | *数値型は整数型のみ、また数値演算は整数演算のみ
| |
− | *変数名は頭文字1文字または2文字程度しか認識しない
| |
− | *文字列の長さが限られる(255文字など)
| |
− | *配列の大きさ(添字の最大値)が限られる
| |
− | | |
− | ====中間コードサイズを小さくしたり処理を速くする主なテクニック====
| |
− | 処理プログラムの大きさや速度の制限を改善あるいは回避するテクニックを紹介する。いくつかは、ソースの読みやすさを犠牲にするようなテクニックでもあった。
| |
− | | |
− | *プログラムの初めに全ての変数のデフォルトを整数だと宣言する(<code>DEFINT A-Z</code>)。これはきちんと%などを付けて整数変数として書いてあるプログラムでは意味がないし、小数演算があるプログラムなのにこれを書くとまともに動かなくなる。整数の範囲の演算しかしていないが、%を付けずに書かれているプログラムを後から改善する場合だけに意味のあるテクニック。
| |
− | *命令を省略形で書く(<code>PRINT</code>→<code>?</code>、<code>LET A=B</code>→<code>A=B</code>、<code>REM</code>→<code>'</code> など)
| |
− | :ただし、中間コードを採用している処理系では、<code>?</code>と入力しても<code>PRINT</code>に展開されるので、結果は変わらない。また、<code>REM</code>を<code>'</code>と書くのはかえってサイズが増える。
| |
− | *余白やコメントを入れない
| |
− | *<code>NEXT</code>の変数名を省略する(可能な処理系のみ)
| |
− | *一行に複数の文を詰め込んで(マルチステートメント)を使用して行の制限一杯に命令文を詰め込む
| |
− | *よく使う変数は早めに確保する(実行時に毎回変数領域の先頭から検索されるため)
| |
− | *よく呼び出すサブルーチンは先頭に配置する(同じような理由。なお、一度通過した<code>GOTO</code>/<code>GOSUB</code>命令のオペランドを内部で行番号からメモリアドレスに書き換える処理系ではあまり効果がない)
| |
− | *キャラクタコードをバイナリと見立て、バイナリに相当するデータを直接プログラムに記述する
| |
− | | |
− | === コンパイラ ===
| |
− | 次のような[[コンパイラ]]がある。
| |
− | | |
− | *''BASCOM''(マイクロソフト BASIC-80 [[CP/M]]用インタプリタ)
| |
− | *MS-DOS用[[N88-BASIC]]コンパイラ([[日本電気]] [[PC-9800シリーズ]])
| |
− | *F-BASIC386コンパイラ([[富士通]] [[FM TOWNS]])
| |
− | *[[MSX-BASIC|MSXべーしっ君]]([[アスキー (企業)|アスキー]] [[MSX]])
| |
− | **[[実行ファイル]]は生成しない
| |
− | *[[X-BASIC]]コンバーター([[シャープ]] [[X68000]])
| |
− | **[[C言語]]に変換した上でのコンパイル
| |
− | *[[FreeBASIC]]コンパイラ([[Microsoft_Windows]],[[Linux]],[[DOSエクステンダ]],[[Xbox]])
| |
− | **フリーで[[GNU General Public License|GPL]]形式の[[Intel 80386|80386]]向けコンパイラで現代向けに多数の機能(GUIアプリケーション作成や[[オブジェクト指向プログラミング]]機構の搭載[[OpenGL]]、[[SDL]]等多数の[[ライブラリ]]を使用可能)追加が行われているが[[QuickBASIC]]との互換性も有る
| |
− | | |
− | しかし、パソコンに内蔵または標準添付されていたインタプリタと違い、コンパイラは別売であったり、高価であったり、実行には[[ランタイムライブラリ]]を必要であったりする場合があった。このことから、BASICインタプリタによる開発に習熟したユーザーは、より高速で柔軟なプログラムを求めて、[[機械語]]([[アセンブリ言語]])や、[[C言語]]などに移行していった。
| |
− | | |
− | また、コンパイラと称していても、実際はインタプリタと[[ソースコード]]を同梱した[[実行ファイル]]を作るだけ、というものもある。[[中間表現]]と、そのインタプリタ、という構成のものもある。
| |
− | | |
− | ===構造化とBASIC===
| |
− | 急速に広まったBASICだが、構造化機能の無いBASICは教育に使うな、などと[[計算機科学|コンピュータサイエンティスト]]の一部から酷評されたりもした。BASIC批判の急先鋒としては[[エドガー・ダイクストラ]]の[[1975年]]の発言<ref>[[:en:Edsger_W._Dijkstra#How_do_we_tell_truths_that_might_hurt.3F_.281975.29]]</ref>などが知られる([[Apple II]]などのパソコンが普及する以前の発言であることに注意)。
| |
− | | |
− | 局所変数が無いことなど問題は多いが、しばしばGOTOのような見た目にわかりやすい事柄ばかりが取り上げられがちである。
| |
− | | |
− | ===標準化===
| |
− | ====基本BASIC====
| |
− | BASICの標準化が望まれたが、マイコンの急激な発展と、各メーカーの独自拡張が魅力であったという事情により、結局どの機種のBASICでも変わりが無いようなごく基本的な機能に絞った仕様が標準として制定された。ANSI X3.60-1978「American National Standard for the Programming Language Minimal BASIC」は、日本では JIS C 6207-1982「電子計算機プログラム言語 基本BASIC」として規格化された。制定直後にJISの分類の再編があり、電気電子のCから情報のXに移動してJIS X 3003となったが、次節のFull BASICのJIS化の際に改訂として同じ番号を使うという形で旧規格として消滅した。
| |
− | | |
− | 日本では[[1990年代]]後半から、[[高等学校]]や[[大学入試センター試験]]の数学に、標準化された基本BASICの範囲で書かれたプログラミングが扱われるようになった。
| |
− | | |
− | ====Full BASIC====
| |
− | [[ダートマスBASIC]]は、他のBASIC(ケメニーらは「ストリート」BASIC、と呼んだ<ref>英語で「[[走り屋]]による競走」を意味する {{仮リンク|Street racing|en|Street racing}} といったような street の語義を意識して使っている。</ref>)とは異なって既に1970年代後半から構造化などが進んでおり、ANSIでは新しい規格の策定も進んでいたが、これをパソコン向けにアレンジした[[True BASIC]]が、1984年に開発された(日本では[[クレオ (ソフトウェア)|クレオ]]から発売)。構造化の他、行列演算の機能など、学術的(特に数学的)な方面の拡張も特徴である。そしてTrue BASICとほぼ同一の構造化BASICである[[Full BASIC]]が'''ISO/IEC 10279''' (Information technology−Programming languages −Full BASIC)が1991年に [[情報技術規格国際委員会|INCITS]]/[[ISO/IEC JTC 1]]によって、[[日本工業規格|JIS]] は JIS X 3003:1993『電子計算機プログラム言語 Full BASIC // The Programming Language Full BASIC』 が1993年に規格化された。
| |
− | | |
− | ;Full BASICの主な特徴
| |
− | :*構造化に対応する制御文を追加した(<code>DO</code>〜<code>LOOP</code>、<code>DO WHILE</code>〜<code>LOOP WHILE</code>など)
| |
− | :**行番号や<code>GOTO</code>を使用しなくて済むようになった
| |
− | :**<code>IF</code>文が多行に渡るブロック<code>IF</code>(<code>IF</code>〜<code>THEN</code>〜<code>ELSE</code>〜<code>ENDIF</code>)も可能となった
| |
− | :*<code>LET</code>を省略できないようにした(True BASICでは<code>OPTION NOLET</code>または<code>NOLET</code>を実行すると省略可能)
| |
− | :*[[スコープ]]の概念を取り入れた
| |
− | :**[[サブルーチン]](<code>SUB</code>〜<code>END SUB</code>)や[[関数]](<code>FUNCTION</code>〜<code>END FUNCTION</code>)の中で[[ローカル変数]]が使用できるようになった
| |
− | :**サブルーチンと関数は戻り値を戻すかどうかで区別される
| |
− | :**[[再帰]]処理の実装が容易になった
| |
− | :*計算精度や丸めの方法を規定した
| |
− | :*配列の添字を1から始めるようにした(<code>OPTION BASE</code>命令で0から始まるようにすることも可能)
| |
− | :*[[行列]]演算機能
| |
− | :*構文のアドホックな所などを極力排除した
| |
− | :*予約語を極力少なくした
| |
− | :*I/Oを直接操作するなどシステムに干渉する命令は持たないようにした(True BASICでは拡張ライブラリとして提供)
| |
− | :*グラフィック命令を規定した。なお、(0, 0) が、デフォルトでは、コンピュータ系に多い左上ではなく数学などで伝統的な左下である(変更できる。高機能なBASICに多かった、任意にスクリーンとウインドウのそれぞれの座標を設定できるタイプである)
| |
− | :*Minimal BASICの上位互換である
| |
− | :**使用する必要はないが、行番号や<code>GOTO</code>なども規格としては残っている
| |
− | :**パソコン向けのそれまでのBASICとは命令の互換性が低い
| |
− | | |
− | === その他の現代化BASIC ===
| |
− | ====QuickBASIC====
| |
− | マイクロソフトはFull BASIC規格の策定には参加しなかったが、[[1985年]]にFull BASICに類した構造化や特徴を追加した独自規格の[[QuickBASIC]]を発売した。これは自社のMS-DOS用の[[GW-BASIC]]の上位互換で、コンパイラ並に動作を高速にした上にコンパイルも出来るようにしたもので、Version4.5まで発売した後に[[1991年]]の[[Microsoft Visual Basic|Visual Basic]]へと繋がっていった。
| |
− | | |
− | QuickBASIC との互換性を考慮した[[フリーソフトウェア|フリー]]なBASICとして{{仮リンク|QB64|en|QB64}}や[[FreeBASIC]]がある。
| |
− | | |
− | ====RATBAS====
| |
− | 構造化ということを意識していなかったパソコン用のROM/Disk-Basic環境で、構造化プログラムを記述するために作られた[[プリプロセッサ]]である。[[アスキー (企業)|アスキー]]の書籍の形(アスキー書籍編集部編著「構造化BASIC RATBASのすすめ」 (ISBN 978-4-87148-152-6) )で、[[1985年]]に公開された。
| |
− | | |
− | これは、独自の構造化された構文で記述されたソースプログラムを処理し、行番号やGOTO文を使うROM/Disk-Basicに変換するプログラムで、すべてBasicで記述されていた。RATBASという名前は構造化Fortranの[[Ratfor]]などに倣ったものである。
| |
− | | |
− | RATBASは、[[スタンドアローン]]のBasicプログラムと、[[Uni+|μ-UX]]の外部コマンドとして作成されたサブセット版がある。μ-UXとは、[[年刊AhSKI!]]の[[1984年]]号に掲載された、Disk-Basicで記述されたUnix風のオペレーティング環境である[[Uni+]]を拡張したものである。
| |
− | | |
− | ====その他====
| |
− | 海外では[[ボーランド]]が独自に[[ALGOL]]風の拡張を施した[[Turbo Basic]]を発売した。
| |
− | | |
− | ===GUI時代とBASIC===
| |
− | 近年ではマイクロソフトの独自拡張による[[RAD (計算機プログラミング環境)|RAD]]環境[[Microsoft Visual Basic|Visual Basic]] (VB) や、[[Microsoft Office|MS Office]]などで動作するそのサブセット[[Visual Basic for Applications]] (VBA)が[[Microsoft Windows|Windows]]における代表的な[[プログラミング言語]]のひとつとして広く利用されている。もっともVisual Basicは、GUIに特化したRAD環境として大幅に拡張が施され、元のBASIC言語とは、かけ離れてしまっている。
| |
− | | |
− | BASICは依然として初心者向けの言語ではあるが、パソコンに添付されることはなくなった。プログラムの入門でもBASICを使わず、最初から[[C言語]]などで教える教育機関も多い。無料で使える[[Java]]などの、洗練された後発言語の普及により、開発環境としては選択肢の一つでしかなくなった。
| |
− | | |
− | また、コンパイラで開発した場合、実行ファイルとは別に、巨大なランタイムライブラリが必要となる処理系が多い。このため配布に必要なファイルのサイズが大きくなり、敬遠されることがある。それでもBASICは、依然として使われているのも事実である。
| |
− | | |
− | ===オブジェクト指向とBASIC===
| |
− | 現在、BASICも[[オブジェクト指向]]化が見受けられる。その代表例が[[Microsoft Visual Basic .Net|Visual Basic.NET]]や[[REALbasic]]や[[ActiveBasic]]や[[FreeBASIC]]等で、四者とも既に完全なオブジェクト指向言語になっていると言える。
| |
− | | |
− | ==主なBASIC==
| |
− | ===現在のパソコンのBASIC===
| |
− | ====マイクロソフトBASIC・ならびにその類似系====
| |
− | *[[Microsoft Visual Basic|Visual Basic]] - マイクロソフト
| |
− | **[[Visual Basic for Applications]] (VBA)
| |
− | **[[Microsoft Visual Basic .Net|Visual Basic.NET]]
| |
− | *[[Small Basic]] - マイクロソフト
| |
− | *[[99Basic]] (Windows用フリーウェア 国産)
| |
− | *[[ActiveBasic]] (Windows用フリーウェア 国産)
| |
− | *[[BASIC/98]] (Windows用 国産 [[N88-BASIC]]互換) - 有限会社電脳組
| |
− | *{{仮リンク|Xojo|en|Xojo}}(旧:[[REALbasic]])(Windows・[[Mac OS]]・[[Linux]])
| |
− | *{{仮リンク|Jabaco|en|Jabaco}}
| |
− | *[[XBLite]]
| |
− | *[[Android-Basic]] (Android用)
| |
− | *[[FreeBASIC]]([[QuickBASIC]]互換、GPL)(Windows・Linux・[[DOSエクステンダ]]・[[Xbox]])
| |
− | *{{仮リンク|QB64|en|QB64}}([[QuickBASIC]]互換)
| |
− | | |
− | ====独自系====
| |
− | *[[FutureBASIC]] (Mac OS、構文はQuickBASIC互換<!--なので、Full BASICに近い-->)
| |
− | *[[BCX]](GPLv2 + BCX例外ライセンスのオープンソースソフトウェア BASIC → C言語トランスレータでインラインC/[[C++]]およびアセンブリを扱えるなどの特徴を持つ)
| |
− | *[[UBASIC]] (DOS用フリーウェア 多倍長演算に特化)
| |
− | *[[DarkBASIC]] (ゲーム製作に特化したBASIC言語、Windows専用、特に3Dゲーム)
| |
− | *[[GLBasic]] (GCCコンパイラを内部で利用するマルチプラットフォーム開発環境)
| |
− | | |
− | ====Full BASIC系(規格準拠)====
| |
− | *[[(仮称)十進BASIC]]<ref>[http://hp.vector.co.jp/authors/VA008683/index.htm 十進BASICのホームページ]</ref> (JIS Full BASICに準拠、Windows・Linux・Mac OS用フリーウェア、英語名Decimal BASIC)
| |
− | * [[True BASIC]] - [https://www.truebasic.com/ (外部リンク)](Full BASIC規格の原型、[[MS-DOS]]・Windows・Mac OS・UNIX、現在は英語版のみ)
| |
− | *[[Ultra BASIC]] - 株式会社[[ラネクシー]]
| |
− | | |
− | ====旧式構文系====
| |
− | *[[Chipmunk Basic]](Windows・Mac OS・[[UNIX]]用フリーウェア、インタプリタのみ)
| |
− | | |
− | *[[PC-BASIC]] http://www.pc-basic.org/ (Windows・Mac OS・Linux・UNIX・GPL系・GW BASIC互換エミュレート機能搭載型インタープリター)
| |
− | | |
− | ===AndroidのBASIC===
| |
− | *BASIC! 別名rfo-basic http://basic.amsstudio.jp/
| |
− | <ref>AndroidでBASIC!で遊ぼう[改訂版]kindle
| |
− | 2016年11月20日 発行
| |
− | 著者:BASIC!友の会
| |
− | 発行:BASIC!友の会出版</ref>
| |
− | *[http://applion.jp/android/app/net.sourceforge.x11basic/X11-BASIC X11-BASIC - Androidアプリ]
| |
− | | |
− | ===iPhone / iPadのBASIC===
| |
− | *[http://applion.jp/iphone/app/394924289/ Hand BASIC] - CBM Flavor
| |
− | *[https://itunes.apple.com/jp/app/basic-ii/id581692436?mt=8 BASIC-II]
| |
− | | |
− | ===ゲーム機などのBASIC===
| |
− | *[[ファミリーベーシック]] (NS-HuBASIC)([[ファミリーコンピュータ|ファミコン]]、[[任天堂]]・[[シャープ]]・[[ハドソン]]共同開発)
| |
− | *[[PCエンジン]]でべろBASIC(PCエンジン用開発ツール、[[徳間書店インターメディア]]が販売、[[ハドソン]]・[[日本電気ホームエレクトロニクス]]開発)
| |
− | *[[GAME BASIC for SEGASATURN]] ([[セガサターン]]、MSX-BASICライク)
| |
− | *[[BASIC STUDIO]] ([[PlayStation 2]]、[[アートディンク]]開発)
| |
− | *[[プチコン|プチコン・プチコンmkII]] (SmileBasic)([[ニンテンドーDSi|ニンテンドーDSi/DSiLL]]・[[ニンテンドー3DS]]・[[Newニンテンドー3DS]]、JOEDOWN・[[スマイルブーム]]・[[ロケットスタジオ]]共同開発)
| |
− | **[[プチコン3号]] (ニンテンドー3DS・Newニンテンドー3DS)
| |
− | | |
− | ===過去のパソコンなどのBASIC===
| |
− | ====独自系====
| |
− | *[[Apple 6K BASIC]] ([[アップル (企業)|アップルコンピュータ]] [[Apple II]] 別名 Integer BASIC)
| |
− | *[[G-BASIC]] ([[トミー (企業)|トミー]][[ぴゅう太]]用BASIC、命令後を日本語に置き換えてある。同機には別売のBASIC 1もあり) ※同機とは関係ない、マイクロソフト製の同名のBASICがある
| |
− | *MW-BASIC (BASIC-09 [[OS-9]]用)
| |
− | *[[BASIC-G]] ([[東芝パソコンシステム|ソード]]の[[M5 (コンピュータ)|M5]]のBASIC、整数型しか使えないが高速だった。同機には実数用の[[BASIC-F]]もあり)
| |
− | *[[Tiny BASIC]] (黎明期の[[パーソナルコンピュータ|マイコン]]用など)
| |
− | *[[WICS]] (MZ-80K及びMZ-80Bシリーズ用のBASICに極力似せた表記方法を採用した、インタープリタ兼コンパイラ 整数型プログラミング言語)
| |
− | *[[C-BASIC]] ([[カシオ計算機|カシオ]][[FP-1000|FPシリーズ]]用のBASICで10進演算による精度の高い計算を得意とした。8ビット用のC82-BASICと[[16ビット]]用C86-BASICがある)
| |
− | *SHARP BASIC ([[ポケットコンピュータ|ポケコン]]用のBASIC)
| |
− | *[[X-BASIC]] ([[X68000]]の[[C言語]]ライクなBASIC、ハドソン製。)
| |
− | ====マイクロソフト系====
| |
− | *([[Microsoft BASIC]])
| |
− | *[[Apple 10K BASIC]] (アップルコンピュータ Apple II+以降)
| |
− | *BASCOM (CP/M用BASICコンパイラ)
| |
− | *[[F-BASIC]] ([[富士通#パーソナルコンピュータ|FMシリーズ]]のBASIC、[[富士通]]製)
| |
− | *[[M-BASIC]] ([[CP/M]]用のBASIC)
| |
− | *[[MSX-BASIC]] ([[MSX]]用のマイクロソフトBASIC、スプライト機能などを拡張、N88などより原型に近い)
| |
− | *[[N-BASIC]] ([[PC-8000シリーズ]]などのBASIC)
| |
− | *[[N80-BASIC]] ([[PC-8000シリーズ|PC-8001mkII]]などのBASIC)
| |
− | *[[N88-BASIC]] ([[PC-8800シリーズ]](マイクロソフト製)、[[PC-9800シリーズ]](日本電気製)のBASIC、PC-9800シリーズ用は別途コンパイラもあり)
| |
− | *[[N60-BASIC]]、[[N60m-BASIC]]、[[N66-BASIC]]、[[N66SR-BASIC]] ([[PC-6000シリーズ]]、[[PC-6600シリーズ]]のBASIC)
| |
− | *[[N100 BASIC]] ([[PC-100]]のBASIC)
| |
− | *[[N82-BASIC]] ([[PC-8200シリーズ|PC-8201]]のBASIC)
| |
− | *[[Hu-BASIC]] ([[ハドソン]]製のマイクロソフト系命令セットのBASIC。固定のシステムをROMで持たない[[MZ-80|MZ-80K]]で利用できるよう市販されたが、後に[[MZ-700]]や[[X1 (コンピュータ)|X1/turbo/turboZシリーズ]]では標準添付のシステムとなり、X1では名前を変えつつ標準のシステムとして最終機まで継承された。)
| |
− | *[[BASIC-M25]] (シャープ[[MZ-2500]]用の実装。コピーライトはシャープとなっているが、ハドソン製でもマイクロソフト製でも無い。日本語のラベルや、インデントのタブコード化、常駐プログラムとの併用など本体に合わせ高機能なBASICとなっている。)
| |
− | *[[BASIC-M28]] (シャープ[[MZ-2861]])
| |
− | *[[IchigoJam#プログラミング言語|IchigoJam BASIC]] (IchigoJam用の実装。MSXの影響を強く受けているため、独自拡張を含むもののMSX-BASICのサブセットの様な命令セットとなっている。)
| |
− | *[[QBasic]] (QuickBASICの簡易版、[[Microsoft Windows 95|Windows 95]] / [[Microsoft Windows 98|98]]の[[CD-ROM]]に英語版が付属)
| |
− | *[[QuickBASIC]] (Visual Basicの原型となった構造化BASIC)
| |
− | *[[Microsoft BASIC Professional Development System]] (QuickBASICの進化形で、標準でISAMデータベースが構築でき、MS-MASM、MS-C、Quick C、MS-FORTRAN等とのミックスド・ランゲージ開発が可能な、プロユースの構造化BASIC)
| |
− | | |
− | : これらは命令セットの仕様が共通なだけで、必ずしもマイクロソフト製というわけではない。
| |
− | ====コモドール系====
| |
− | *[[S-BASIC]] ([[MZ (コンピュータ)|MZ]]シリーズのBASIC、シャープ製)
| |
− | *[[BASIC-S25]] (シャープ[[MZ-2500]])
| |
− | *[[SC-3000|BASIC LEVEL II他]] (SEGAのSC-3000/SG-1000等のためのBASIC)
| |
− | | |
− | : [[MZ-80K]]が[[PET 2001]]の影響を強く受けていることもあり、シャープ純正のBASICの命令セットは互換性のため後継製品もそれに準拠して独自拡張した物となっている。
| |
− | | |
− | ====Web系====
| |
− | *[http://www.quitebasic.com/ Quite BASIC(外部リンク)] ブラウザ上でBASICコードを書いてWeb上で実行できるサービス
| |
− | | |
− | == 脚注 ==
| |
− | {{脚注ヘルプ}}
| |
− | <references />
| |
− | | |
− | ==関連書籍==
| |
− | {{Wikibooks|BASIC|BASIC}}
| |
− | *マイコンBASIC互換表 [[CQ出版社]]
| |
− | * Kemeny, John G. & Kurtz, Thomas E. (1985). ''Back to BASIC: The History, Corruption and Future of the Language''. Addison-Wesley Publishing Company, Inc. ISBN 0-201-13433-0.
| |
− | ** 松田健生訳、市川新解説(1990)『バック・トゥ・BASIC 開発者が語る言語の歴史と設計思想』[[啓学出版]]、ISBN 4-7665-1074-7
| |
− | | |
− | {{BASIC}}
| |
− | {{プログラミング言語一覧}}
| |
| | | |
| + | {{テンプレート:20180815sk}} |
| [[Category:BASIC|*]] | | [[Category:BASIC|*]] |
| [[Category:パソコンの歴史]] | | [[Category:パソコンの歴史]] |
| [[Category:教育用プログラミング言語]] | | [[Category:教育用プログラミング言語]] |