「BASIC」の版間の差分
編集の要約なし |
m Bot作業依頼: Apple関連記事の改名に伴うリンク修正依頼 (Apple|Apple Computer) - log |
||
278行目: | 278行目: | ||
====独自系==== |
====独自系==== |
||
*[[Apple 6K BASIC]] ([[ |
*[[Apple 6K BASIC]] ([[Apple|Apple Computer]]製、[[スティーブ・ウォズニアック]]独力による開発実装。[[Apple I]], [[Apple II]]用 別名 [[:en:Integer_BASIC|Integer BASIC]]) |
||
*[[G-BASIC]] ([[トミー (企業)|トミー]][[ぴゅう太]]用BASIC、命令語を日本語に置き換えてある。同機には別売のBASIC 1もあり) ※同機とは関係ない、マイクロソフト製の同名のBASICがある |
*[[G-BASIC]] ([[トミー (企業)|トミー]][[ぴゅう太]]用BASIC、命令語を日本語に置き換えてある。同機には別売のBASIC 1もあり) ※同機とは関係ない、マイクロソフト製の同名のBASICがある |
||
*MW-BASIC (BASIC-09 [[OS-9]]用) |
*MW-BASIC (BASIC-09 [[OS-9]]用) |
2021年5月20日 (木) 10:13時点における版
BASIC(ベーシック)は手続き型プログラミング言語のひとつ。
名前は「beginner's all-purpose symbolic instruction code」(「初心者向け汎用記号命令コード」を意味する)のバクロニムである。
概要
BASICは、インタープリタ方式で動くものと、コンパイラ方式で動くものに大別できる。
文法・構文
いくつかの点でFORTRANに似ている。構文は、FORTRANの文法が基になっているとしばしば解説されている。
現時点で振り返ると、ざっくりと言うと、構文の様式が大きく異なる2種類のBASICが存在している。構造化前のBASICと、構造化後のBASICである。
- 前者は、1970年代~1980年代のコンピュータ(特にパソコン)で初心者向けのプログラミング言語として、非常に広く使われたものである。(だが、こちらの構造化前のBASICは、混乱やバグを招きがちでデバッグを恐ろしく困難にしてしまうGoto文を頻用せざるを得ないという問題があり、批判も浴び、構造化ができるC言語などに負け、中級者以上や実用的なプログラム開発という領域では結局、廃れてゆかざるを得なかった。)
- 後者の、構造化したBASICというのは、評判が悪く混乱を招きがちだったGOTO文は無しにして、構造化を実現できるようにしたもので、いくつかの流れで成立したが、特に1991~1993年ころに正式に規格として制定されたFull BASICの仕様は、構造化がしっかりしてある(しかも他の点でも改良が行われている)。なおMicrosoft Visual Basic .NET の仕様もこのFull BASICに近いものであり、現代における有力な言語環境のひとつである。
したがって、両者はかなり区別して論じる必要がある。
- プログラム例と出力例
きわめてシンプルな例を挙げる。
画面に次のように入力したとする。
10 REM 5つ数える
20 FOR I = 1 TO 5
30 PRINT I
40 NEXT
RUN
RUN
命令を入力すると、それ以前に入力されたプログラムが実行される。この場合の出力は次のとおり。
1 2 3 4 5
なお「REM」というのは、ソースコードを読む人間のために注釈文(英:remark)を書き加えるために文頭に置かれる予約語であり、REMで始まる行はプログラムの実行結果に何ら影響を与えない。
また、プログラムに編集を加えたい場合、続いて例えば次のように入力する。
10 REM 5つ数える(“3”だけ飛ばす)
25 IF I = 3 THEN GOTO 40
RUN
このように入力すると、10
で始まる行が書き換えられ、20行目と30行目の間に25行目が挿入される。この場合の出力は次のとおり。
1 2 4 5
主な特徴
- 歴史的な経緯から、FORTRANやパソコンではC言語と比較されることが多い。
- 高水準言語である。
- (ダートマスBASICはコンパイルしているが)インタプリタとして実装された処理系が多い。
- 編集環境を兼ねた一種のシェルのようなコマンドラインインタプリタを持つものも多いが、LISPのREPLのように洗練されたものではない。
- 古いBASICではすべての行頭に行番号を必要とし、GOTO文などの飛び先は行番号で指定する(但し、N88-BASICでは飛び先を指定する際、行番号のかわりにラベルを用い GOTO *LABEL のような指定が可能)。行番号は、テレタイプ端末時代に処理系と一体の行指向テキストエディタで扱うのに便利であった。現在でも互換性のために両者を残している処理系もある。
- 本来は、RUNなどのように、プログラム外から処理系に指示を与えるものはコマンド(命令)、FORなどのようにプログラム中のものはステートメント(文)、と、本来は(ダートマスBASICでは)明確な区別があったが、次第に混同されていった。
- プログラム中の予約語(キーワード)には文の他に関数がある。それらと同じ名前を変数に使うことはできない(Tiny BASIC等では変数長は一文字といったものも多い、N-BASICでは二文字、N88-BASIC(86)では40文字など、変数長は処理系に依存している)。
- 文字列変数の内容等を除いて、大文字と小文字を区別しない。入力の時点で全て大文字に変換される処理系もあった。
- 算術演算子以外の記号は極力使わない。論理演算子は
AND
、OR
、XOR
、NOT
である。括弧は演算の優先順位も、関数の引数も、配列もすべて「()
」のみを用いる。ブロックも「{}
」のような括弧ではなく「FOR
文からNEXT
文までの間」といった構文により指定する。 - 代入と比較はどちらも「
=
」である。代入はLET文とするのが本来の形だが(文は全てキーワードから始まる、という規則により)、「A = 1
」のような、キーワード「LET」を省略した代入の構文が好まれた。 - ファーストクラスの型は数値型と文字列型である。数値は浮動小数点数だけのものもあるが、整数型などがあるものもある。文字列型の変数名は末尾に「
$
」を付ける、といった規則のものもある。 - LEFT$, MID$, RIGHT$など、文字列操作関数が豊富なことが多い。
- 明示的な変数宣言を必要とせず、変数を使用し始めたところで宣言したものと解釈される。
- 使ったことのない変数を使うと勝手に変数が作られ、また中身は自動的に初期化される(数値型は0、文字列型は空文字列)。
- プログラムは先頭行から実行される。
歴史
1964年、米国ダートマス大学にて、数学者ジョン・ケメニー(1926年-1992年)とトーマス・カーツ(1928年-)により、教育用などを目的としてダートマスBASICが開発された。これは同時期にともに開発された、タイムシェアリングシステムDTSS上のラインエディタ(テレタイプ端末環境)で利用されるよう設計されていた。[1]
BASICは、GEとの提携を経て、学外にも普及した。ダートマス大学のオリジナルはコンパイラだったが(ただし、完全オンメモリ動作・1パスという、きわめて軽く動作するものであり、言語仕様もそのような「軽い」コンパイルのために設計されている)パソコンなどの商用版では基本機能を最小限にしたうえでインタプリタとして実装されることが多く、独自の発展を遂げた。
8ビットパソコンの普及とBASIC
1970年代末から1980年代初頭にかけて、8ビットCPUを使った自作コンピュータでTiny BASICを動かし、その上でゲームを実行させる(スタートレックゲーム等)のがホビーストの目標となった。
同時に、メーカー製のターンキーシステムにBASICインタプリタがROMの形で搭載されはじめ、一気に当時のマイコンにおける標準言語の立場を獲得した。この時に搭載されたBASICインタプリタはほとんどがマイクロソフト製で、同社躍進のきっかけとなった。また、マイクロソフト製BASICは、中間コードを使用する構造になっており、また汎用機を再現した極めてエミュレータに近いランタイム形式の実行環境だったため、当時の互換性が皆無なコンピュータ事情の中でも、スクリプト自体の移植は容易だった。
その後、(MS-DOS発表以前の)パソコンに、操作を提供するのにも使われ、しばしばROM-BASICとしてハードウェアに組み込まれた。 電源投入後にエディタ込みで利用できることから、現在における、シェル、インタフェースとしての役割ももち、ローダなどの役割も担った。 入力の効率化のため、省略形式での入力や、1980年代後半には、漢字の利用や、ラベル、インデントへの内部的な対応、C言語への橋渡しなど、様々な機種ごとの独自の発展を遂げた。
他の言語の進化に伴いBASICはあくまで初心者向けの言語でありプロにとっては論外のものということになった。しかし一方でプログラミングの専門家以外の人がプログラミングをするのにBASICが重宝されることも依然多い。例えばUBASICや十進BASICはいずれも数学者が開発したものである。 また、当時のPCの処理速度から、処理の高速化が必要な部分はデータ形式でアセンブリ言語による処理を呼び出すなどの手法もとられた。
互換性とBASIC
各メーカーのパソコンに標準搭載されたBASICは、機種ごとに画面操作やI/O直接操作などの独自拡張が行われた。マイクロソフト製(MBASIC、BASICA、G-BASIC、GW-BASICの移植版)のものや、その命令体系を引継ぎ実装したものである、F-BASIC、Hu-BASIC、カタカナで表現するG-BASIC(前述のマイクロソフトの物とは異なる)、PETに由来するS-BASIC、SEGAのベーシックカートリッジ、Cを意識したX-BASICなど各社が独自にBASICを開発し、いわゆる「方言」が生まれた。この結果、たとえBASICのメーカーが同じでも「あるパソコンで作ったBASICプログラムは、他のパソコンではそのままでは動かすことができない」ことの方がずっと多かった。
もっとも当時は群雄割拠の時代でもあり、特に市販ソフトが満足に出なくなったパソコンにおいては、BASICは重要な役割を果たした。
方言の例
- カーソル位置を指定する
LOCATE
文は、別の処理系ではCURSOR
文 - 音楽を演奏する
PLAY
文、MUSIC
文とそれらに記述されるMML - 画面モードを指定する
CONSOLE
文 - スプライト機能を使用する命令
- VRAMと配列変数の内容をやりとりする命令
- 条件付きループを実現する
WHILE
〜WEND
GOTO
,GOSUB
文の飛び先を指定するラベルCALL
,CMD
,SET
などで始まる命令文
メイン・メモリの制限による処理系の実装例
初期のTiny BASICはともかくとしても、BASIC実装処理系のメイン・メモリの制限により言語仕様が極めて制限された実装が存在した。
- 数値型は整数型のみ、また数値演算は整数演算のみ
- 変数名は頭文字1文字または2文字程度しか認識しない
- 文字列の長さが限られる(255文字など)
- 配列の大きさ(添字の最大値)が限られる
中間コードサイズを小さくしたり処理を速くする主なテクニック
処理プログラムの大きさや速度の制限を改善あるいは回避するテクニックを紹介する。いくつかは、ソースの読みやすさを犠牲にするようなテクニックでもあった。
- プログラムの初めに全ての変数のデフォルトを整数だと宣言する(
DEFINT A-Z
)。これはきちんと%などを付けて整数変数として書いてあるプログラムでは意味がないし、小数演算があるプログラムなのにこれを書くとまともに動かなくなる。整数の範囲の演算しかしていないが、%を付けずに書かれているプログラムを後から改善する場合だけに意味のあるテクニック。 - 命令を省略形で書く(
PRINT
→?
、LET A=B
→A=B
、REM
→'
など)
- ただし、中間コードを採用している処理系では、
?
と入力してもPRINT
に展開されるので、結果は変わらない。また、REM
を'
と書くのはかえってサイズが増える。
- 余白やコメントを入れない
NEXT
の変数名を省略する(可能な処理系のみ)- 一行に複数の文を詰め込んで(マルチステートメント)を使用して行の制限一杯に命令文を詰め込む
- よく使う変数は早めに確保する(実行時に毎回変数領域の先頭から検索されるため)
- よく呼び出すサブルーチンは先頭に配置する(同じような理由。なお、一度通過した
GOTO
/GOSUB
命令のオペランドを内部で行番号からメモリアドレスに書き換える処理系ではあまり効果がない) - キャラクタコードをバイナリと見立て、バイナリに相当するデータを直接プログラムに記述する
コンパイラ
次のようなコンパイラがある。
- BASCOM(マイクロソフト BASIC-80 CP/M用インタプリタ)
- MS-DOS用N88-BASICコンパイラ(日本電気 PC-9800シリーズ)
- F-BASIC386コンパイラ(富士通 FM TOWNS)
- MSXべーしっ君(アスキー MSX)
- 実行ファイルは生成しない
- X-BASICコンバーター(シャープ X68000)
- C言語に変換した上でのコンパイル
- FreeBASICコンパイラ(Microsoft_Windows,Linux,DOSエクステンダ,Xbox)
- フリーでGPL形式の80386向けコンパイラで現代向けに多数の機能(GUIアプリケーション作成やオブジェクト指向プログラミング機構の搭載OpenGL、SDL等多数のライブラリを使用可能)追加が行われているがQuickBASICとの互換性も有る
しかし、パソコンに内蔵または標準添付されていたインタプリタと違い、コンパイラは別売であったり、高価であったり、実行にはランタイムライブラリを必要であったりする場合があった。このことから、BASICインタプリタによる開発に習熟したユーザーは、より高速で柔軟なプログラムを求めて、機械語(アセンブリ言語)や、C言語などに移行していった。
また、コンパイラと称していても、実際はインタプリタとソースコードを同梱した実行ファイルを作るだけ、というものもある。中間表現と、そのインタプリタ、という構成のものもある。
構造化とBASIC
急速に広まったBASICだが、構造化機能の無いBASICは教育に使うな、などとコンピュータサイエンティストの一部から酷評されたりもした。BASIC批判の急先鋒としてはエドガー・ダイクストラの1975年の発言[2]などが知られる(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、と呼んだ[3])とは異なって既に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の主な特徴
-
- 構造化に対応する制御文を追加した(
DO
〜LOOP
、DO WHILE
〜LOOP WHILE
など) IF
文が多行に渡るブロックIF
(IF
〜THEN
〜ELSE
〜ENDIF
)も可能となったLET
を省略できないようにした(True BASICではOPTION NOLET
またはNOLET
を実行すると省略可能)- スコープの概念を取り入れた
- 計算精度や丸めの方法を規定した
- 配列の添字を1から始めるようにした(
OPTION BASE
命令で0から始まるようにすることも可能) - 行列演算機能
- 構文のアドホックな所などを極力排除した
- 予約語を極力少なくした
- I/Oを直接操作するなどシステムに干渉する命令は持たないようにした(True BASICでは拡張ライブラリとして提供)
- グラフィック命令を規定した。なお、(0, 0) が、デフォルトでは、コンピュータ系に多い左上ではなく数学などで伝統的な左下である(変更できる。高機能なBASICに多かった、任意にスクリーンとウインドウのそれぞれの座標を設定できるタイプである)
- Minimal BASICの上位互換である
- パソコン向けのそれまでのBASICとは命令の互換性が低い
- サブルーチン(
GOSUB
〜RETURN
)は規格として残ってはいるが、使用は推奨されない
- サブルーチン(
- 構造化に対応する制御文を追加した(
その他の現代化BASIC
QuickBASIC
マイクロソフトはFull BASIC規格の策定には参加しなかったが、1985年にFull BASICに類した構造化や特徴を追加した独自規格のQuickBASICを発売した。これは自社のMS-DOS用のGW-BASICの上位互換で、コンパイラ並に動作を高速にした上にコンパイルも出来るようにしたもので、Version4.5まで発売した後に1991年のVisual Basicへと繋がっていった。
QuickBASIC との互換性を考慮したフリーなBASICとして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プログラムと、μ-UXの外部コマンドとして作成されたサブセット版がある。μ-UXとは、年刊AhSKI!の1984年号に掲載された、Disk-Basicで記述されたUnix風のオペレーティング環境であるUni+を拡張したものである。
その他
海外ではボーランドが独自にALGOL風の拡張を施したTurbo Basicを発売した。
GUI時代とBASIC
近年ではマイクロソフトの独自拡張によるRAD環境Visual Basic (VB) や、MS Officeなどで動作するそのサブセットVisual Basic for Applications (VBA)がWindowsにおける代表的なプログラミング言語のひとつとして広く利用されている。もっともVisual Basicは、GUIに特化したRAD環境として大幅に拡張が施され、元のBASIC言語とは、かけ離れてしまっている。
BASICは依然として初心者向けの言語ではあるが、パソコンに添付されることはなくなった。プログラムの入門でもBASICを使わず、最初からC言語などで教える教育機関も多い。無料で使えるJavaなどの、洗練された後発言語の普及により、開発環境としては選択肢の一つでしかなくなった。
また、コンパイラで開発した場合、実行ファイルとは別に、巨大なランタイムライブラリが必要となる処理系が多い。このため配布に必要なファイルのサイズが大きくなり、敬遠されることがある。それでもBASICは、依然として使われているのも事実である。
オブジェクト指向とBASIC
現在、BASICもオブジェクト指向化が見受けられる。その代表例がVisual Basic.NETやREALbasicやActiveBasicやFreeBASIC等で、四者とも既に完全なオブジェクト指向言語になっていると言える。
主なBASIC
現行機種用BASIC
現在、新品で販売されている機種で動くBASIC
現行パソコン用のBASIC
現在、新品で販売されているパソコン上で動くBASIC
- マイクロソフトBASIC・ならびにその類似系
- Visual Basic - マイクロソフト
- Small Basic - マイクロソフト
- 99Basic (Windows用フリーウェア 国産)
- ActiveBasic (Windows用フリーウェア 国産)
- BASIC/98 (Windows用 国産 N88-BASIC互換) - 有限会社電脳組
- Xojo(旧:REALbasic)(Windows・Mac OS・Linux)
- Jabaco(Visual Basicに似たコードでJRE上で動くソフトを開発するコンパイラ)
- XBLite
- Android-Basic (Android用)
- FreeBASIC(QuickBASIC互換、コンパイラ型、GPL)(Windows・Linux・DOSエクステンダ・Xbox)
- QB64(QuickBASIC互換)
- 独自系
- PureBasic (マルチプラットフォーム、AmigaOS版はオープンソース)
- FutureBASIC (Mac OS、構文はQuickBASIC互換)
- BCX(GPLv2 + BCX例外ライセンスのオープンソースソフトウェア BASIC → C言語トランスレータでインラインC/C++およびアセンブリを扱えるなどの特徴を持つ)
- UBASIC (DOS用フリーウェア 多倍長演算に特化)
- DarkBASIC (ゲーム製作に特化したBASIC言語、Windows専用、特に3Dゲーム)
- GLBasic (GCCコンパイラを内部で利用するマルチプラットフォーム開発環境)
- Full BASIC系(規格準拠)
- True BASIC - 公式サイト(外部リンク)(Full BASIC規格の原型、MS-DOS・Windows・Mac OS・UNIX、現在は英語版のみ、BASICを作ったジョン・ジョージ・ケメニーとトーマス・E・カーツによって作られたBASIC)
- 十進BASIC[4] (JIS Full BASICに準拠、Windows・Linux・Mac OS用フリーウェア、英語名Decimal BASIC)
- Ultra BASIC - 株式会社ラネクシー
- 旧式構文系
- Chipmunk Basic(Windows・Mac OS・UNIX用フリーウェア、インタプリタのみ)
- PC-BASIC (外部リンク)http://www.pc-basic.org/ (Windows・Mac OS・Linux・UNIX・GPL系・GW BASIC互換エミュレート機能搭載型インタープリター)
Android OS用のBASIC
Android OS上で動くBASIC、つまりスマホOS世界シェアNo.1のAndroidスマーフォン群やAndroidタブレット群などで動くBASICは以下のとおり。
- Android-Basic (Android用)
- Tiny BASIC v2 タートルグラフィックスを備えた Android 用 BASIC インタプリタ
- BASIC! 別名rfo-basic http://basic.amsstudio.jp/
iOS用のBASIC
iOS上で動く(つまりiPhoneやiPadで動く)BASICは以下のとおり。
- Hand BASIC - CBM Flavor
- BASIC-II
現在新品で販売されている復刻機のBASIC
最近、復刻パソコン、つまり1980年代などのパソコンが、ほぼ以前どおりのシステム内容で(しかも端子類はHDMIやUSBに変更したり、SDメモリ用スロットなども加えるなど、最近の仕様に改良されて)、新品で販売されるようになっている。それらのほとんどでBASICが動き、ユーザはBASICプログラミングを楽しむことができ、それらを差別する理由は全く無いので、それらについても記述する。
- en:Commodore BASIC (The C64(コモドール64のフルサイズ復刻機)、The C64 MINI(コモドール64のミニサイズ復刻機)などで動く)
- N-BASIC ver 1.1 (ハル研究所から販売されているPasocomMini PC-8001で動く[6])
この節の加筆が望まれています。 |
現行ゲーム機などのBASIC
現在新品で販売されている(子供向けの)ゲーム機のBASIC
Web上で動くBASIC
いつでもインターネット経由でブラウザ画面さえ開けば使えるBASIC(機種が新品販売されているかいないか、などという瑣末な問題も、動作環境をインストールしたかしていないか、などという問題も、ラクラクと乗り越えているBASIC)
- Quite BASIC(外部リンク) - ブラウザ上でBASICコードを書いてWeb上で実行できるサービス
過去機種のBASIC
すでに新品の販売が終了となった機種で動くベーシック。あくまで機種の「新品販売は終了」、というだけのことであり、実際にはありとあらゆる機種は中古で入手可能で、たとえばeBay、メルカリ、ヤフオクなどで広く流通しているので、今日でも入手して、現在も目の前で動くBASICとして使うことができる。[7]
独自系
- Apple 6K BASIC (Apple Computer製、スティーブ・ウォズニアック独力による開発実装。Apple I, Apple II用 別名 Integer BASIC)
- G-BASIC (トミーぴゅう太用BASIC、命令語を日本語に置き換えてある。同機には別売のBASIC 1もあり) ※同機とは関係ない、マイクロソフト製の同名のBASICがある
- MW-BASIC (BASIC-09 OS-9用)
- BASIC-G (ソードのM5のBASIC、整数型しか使えないが高速だった。同機には実数用のBASIC-Fもあり)
- Tiny BASIC (黎明期のマイコン用など)
- WICS (MZ-80K及びMZ-80Bシリーズ用のBASICに極力似せた表記方法を採用した、インタープリタ兼コンパイラ 整数型プログラミング言語)
- C-BASIC (カシオFPシリーズ用のBASICで10進演算による精度の高い計算を得意とした。8ビット用のC82-BASICと16ビット用C86-BASICがある)
- SHARP BASIC (ポケコン用のBASIC)
- X-BASIC (X68000のC言語ライクなBASIC、ハドソン製。)
マイクロソフト系
- Altair BASIC(Altair 8800用。マイクロソフトの最初の製品であり、その後のMicrosoft BASICの起源となった。)
- Apple 10K BASIC (アップルコンピュータ Apple II+以降)
- BASCOM (CP/M用BASICコンパイラ)
- F-BASIC (FMシリーズのBASIC、富士通製)
- MBASIC (CP/M用のBASIC)
- MSX-BASIC (MSX用のマイクロソフトBASIC、スプライト機能などを拡張、N88などより原型に近い)
- N-BASIC (PC-8000シリーズなどのBASIC)
- N80-BASIC (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-8201のBASIC)
- Hu-BASIC (ハドソン製のマイクロソフト系命令セットのBASIC。固定のシステムをROMで持たないMZ-80Kで利用できるよう市販されたが、後にMZ-700やX1/turbo/turboZシリーズでは標準添付のシステムとなり、X1では名前を変えつつ標準のシステムとして最終機まで継承された。)
- BASIC-M25 (シャープMZ-2500用の実装。コピーライトはシャープとなっているが、ハドソン製でもマイクロソフト製でも無い。日本語のラベルや、インデントのタブコード化、常駐プログラムとの併用など本体に合わせ高機能なBASICとなっている。)
- BASIC-M28 (シャープMZ-2861)
- IchigoJam BASIC (IchigoJam用の実装。MSXの影響を強く受けているため、独自拡張を含むもののMSX-BASICのサブセットの様な命令セットとなっている。)
- QBasic (QuickBASICの簡易版、Windows 95 / 98のCD-ROMに英語版が付属)
- QuickBASIC (Visual Basicの原型となった構造化BASIC)
- Microsoft BASIC Professional Development System (QuickBASICの進化形で、標準でISAMデータベースが構築でき、MS-MASM、MS-C、Quick C、MS-FORTRAN等とのミックスド・ランゲージ開発が可能な、プロユースの構造化BASIC)
- Microsoft GW-BASIC かつてMicrosoftが1983年頃出していたBASICで2020-05-21にオープンソース化された、実行環境やバイナリーは提供されていないので初心が使うのは無理で有る。 外部リンク(https://github.com/microsoft/GW-BASIC)
- SONY BASIC(ソニーSMC-70、SMC-777/Cに搭載されたBASICインタープリタ、マイクロソフト系命令セットを備えているが、直接の関係はなく、ビー・ユー・ジー社(現ビー・ユー・ジーDMG森精機株式会社)が開発した[8]。)
- これらは命令セットの仕様が共通なだけで、必ずしもマイクロソフト製というわけではない。
コモドール系
- S-BASIC (MZシリーズのBASIC、シャープ製)
- BASIC-S25 (シャープMZ-2500)
- BASIC LEVEL II他 (SEGAのSC-3000/SG-1000等のためのBASIC)
過去ゲーム機
すでに新品販売されていないゲーム機のBASICは以下のとおり。
- ファミリーベーシック (NS-HuBASIC)(ファミコン、任天堂・シャープ・ハドソン共同開発)
- PCエンジンでべろBASIC(PCエンジン用開発ツール、徳間書店インターメディアが販売、ハドソン・日本電気ホームエレクトロニクス開発)
- GAME BASIC for SEGASATURN (セガサターン、MSX-BASICライク)
- BASIC STUDIO (PlayStation 2、アートディンク開発)
- プチコン・プチコンmkII (SmileBasic)(ニンテンドーDSi/DSiLL・ニンテンドー3DS・Newニンテンドー3DS、JOEDOWN・スマイルブーム・ロケットスタジオ共同開発)
- プチコン3号 (ニンテンドー3DS販売終了、Newニンテンドー3DSも2020年9月16日に販売終了)
脚注
- ^ YouTube Dartmouthチャンネル「Birth of BASIC」
- ^ en:Edsger_W._Dijkstra#How_do_we_tell_truths_that_might_hurt.3F_.281975.29
- ^ 英語で「走り屋による競走」を意味する Street racing といったような street の語義を意識して使っている。
- ^ 十進BASICのホームページ
- ^ AndroidでBASIC!で遊ぼう[改訂版]kindle 2016年11月20日 発行 著者:BASIC!友の会 発行:BASIC!友の会出版
- ^ [1]
- ^ その意味で、そもそも「現在新品で入手可能な機種」と「現在中古で入手可能な機種」で大別して記事を組み立てること自体が、ある意味でナンセンスである。
- ^ “About BUG - History”. www.bug.co.jp. 2019年11月12日閲覧。
関連書籍
- マイコン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