この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)出典検索?"BASIC" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2021年5月)
この記事には独自研究が含まれているおそれがあります。問題箇所を検証出典を追加して、記事の改善にご協力ください。議論はノートを参照してください。(2023年9月)

カテゴリ / テンプレート

BASIC(ベーシック)は手続き型プログラミング言語のひとつ。

名前は「beginners' all-purpose symbolic instruction code」のバクロニムである。日本語では「初心者向け汎用記号命令コード」を意味する。

概要

誕生したのが1964年であり、当時普及していたプログラミング言語FORTRANにいくつかの点で似ている。構文は、FORTRANの文法が基になっているとしばしば解説されている。

BASICはインタープリタ方式で動くものと、コンパイラ方式で動くものに大別できる。現時点[いつ?]では、構文の様式が大きく異なる2種類のBASICが存在している。構造化前のBASICと、構造化後のBASICである。

構造化されていないBASIC (Unstructured BASIC)
1970年代 - 1980年代コンピュータマイクロコンピュータパソコン)で初心者向け・教育用のプログラミング言語として、非常に広く使われたものである。行番号GOTO文(大域ジャンプ)を用いる原始的なBASICであり、分岐やループでは常にジャンプ先の行番号を意識しなければならず、構造化プログラミングが不可能である。行番号とGOTOを用いたプログラミングは、まるでスパゲティが絡み合ったような複雑なコード(スパゲティプログラム)となりがちで、コードの再利用性が低いうえにバグを誘発しやすく、熟練したプログラマにとってもプログラムのデバッグや安全な機能拡張は困難だった[1]。のちに構造化プログラミングに対応したPascalC言語が登場・普及して比較されるようになると、BASICは激しい批判を浴びるようになり、実用的なプログラミング用途ではC言語などに負けて廃れていった。
構造化されたBASIC (Structured BASIC)
順次実行・選択・反復といった制御構造を利用する構造化プログラミングを実現できるように、行番号およびGOTO文を廃止したものである。構造化BASICとも呼ばれる。いくつかの流派で成立したが、特に1991 - 1993年頃に正式に規格として制定されたFull BASICの仕様は構造化がしっかりしてあり、他の点でも改良が加えられてある。このFull BASICの仕様とは互換性がないものの、別の構造化BASICとしての発展を遂げたVisual Basic(VB)をベースに、オブジェクト指向にも完全対応したモダンな言語のひとつとしてVisual Basic .NET(VB.NET)がある。

したがって両者はかなり異なっており、明確に区別して論じる必要がある。

構造化以前のBASICの行番号とGOTO文については、基本的な例を示しつつ#構造化以前のBASICの節で解説する。また、BASICの基本的な予約語や、ステートメントとコマンドの区別(ステートメントはPRINT, FOR NEXT, IFなど、コマンドはRUN, LIST, SAVEなど)についても、同節で解説する。

歴史

最初のBASICは、1964年米国ダートマス大学で、数学者ジョン・ケメニー1926年-1992年)とトーマス・カーツ(1928年 - )がもともと教育目的を想定して開発したものである。このBASICを「ダートマスBASIC」という。行番号の使用や構文は、当時主流だった言語FORTRANの影響を受けている。彼らはこれで金儲けをする気はなく特許なども取得せず、今風に言うと「パブリックドメイン」のようなものにしようと考えていたので普及することになった。このダートマスBASICはコンパイラだった。BASICはGEとの提携を経て大学の外にも普及していくことになり、1970年代後半や1980年代のマイコンパーソナルコンピュータなどの多くの機種で次々と採用され、普及していった。1970年代後半~1980年代のBASICのほとんどはインタプリタ方式でマザーボード上のROM(Read Only Memory)にあらかじめ書き込まれた状態で供給されていた。一部のBASICはインタプリタ方式でもROMに書き込まれておらず補助記憶装置から読み込まれたり(たとえば日本ではシャープのMZ-80シリーズなど)、あるいはコンパイラ方式のBASICで高速で実行できるものも開発・供給された。

歴史

1964年米国ダートマス大学にて、数学者ジョン・ケメニー1926年-1992年)とトーマス・カーツ(1928年 - )により、教育用などを目的としてダートマスBASICが開発された。これは同時期にともに開発された、タイムシェアリングシステムDTSS上のラインエディタ(テレタイプ端末環境)で利用されるよう設計されていた。[2]

BASICは、GEとの提携を経て、学外にも普及した。ダートマス大学のオリジナルはコンパイラだったが、パソコンなどの商用版では基本機能を最小限にしたうえでインタプリタとして実装されることが多く、独自の発展を遂げた。

詳しく説明すると、もっとも初期に使用したのはゼネラル・エレクトリック(GE)であり、GEはGE-225というマシンをダートマス大学に納入していたのである[3]

多数の方言の登場と標準化できなかった経緯

BASICの方言(異仕様)は、1970年ころ、GEがBASICの第4版を使っているころに現れ始めた[3]。新しいバージョンを待たず、ver.5を用いたマシンをGEがリリースしたころからである[3]。ダートマス大のケメニーとカーツの2人が「BASIC the Sixth(BASIC 第六版)」をリリースした1年後くらいに、ズレが生じはじめた[3]。当時のBASICの異バージョンはGordon Eubanks(シマンテック社のCEO)によるもので[3]、彼は1970年にBASIC-Cを開発した[3]。(なお、BASIC-Eは現在のJavaのような技術を用いており、命令文は一種の中間コードに変換された後に機械語に変換されるものである。[3])Eubanksも彼の開発したBASIC-Eについては(ダートマス大の2人同様に)法的に保護せず[3]、次のCBASICでそのような措置をとった[3]。CBASICは彼の会社 Compiler Systems社から販売された[3]。あまりにも次々とBASICの異バージョンが現れるので[3]ANSIも1974年にBASICの標準化の必要性を感じ始めた[3]。ANSI内に標準化委員会が立ちあがり、BASICの2つの標準、つまり当時その委員会で「ミニマルBASIC(minimal BASIC)」つまり最小のBASICと呼ばれたものと[3]、もう一方は「スタンダード BASIC(Standard BASIC)」と呼ばれたものを作成しようと取り組んだ[3]。だがBASICの標準化は難しく、その委員会が長年かけて「標準化」の仕事をやっと完了したころには、とうにBASICは世界中で(さまざまな機種で、異仕様で、とっくにROMなどに実装されて)広く使われてしまっていた。そのようなわけで、(実際上)標準BASIC(Standard BASIC)というものは現れないことになったのである[3]

8ビットパソコンの普及とBASIC

史上初の市販のパーソナルコンピュータとされているのはMITS社のAltair 8800であり、1975年、このAltair 8800向けにハーバード大のビル・ゲイツ、ポール・アレン、モンティ・ダヴィドゥフの3人が(マイクロソフトという設立したての法人の名のもとに)Altair BASICを開発し、MITS社との契約のもと配布された。1976年4月11日にはスティーブ・ウォズニアックによって開発されたパーソナルコンピュータ・キットApple Iがアップル社から発売され、このマシンのために同じくウォズニアックが開発したen:Integer BASICが供給され(当初はデータレコーダのカセットテープの形で供給され、後にApple IIが発売されてからROM版も供給された)、翌1977年6月にはキットタイプではない完成品タイプのApple IIが発売となり、それにもやはりINTEGER BASICが、だが今度は最初からROMに書き込まれた形で搭載された。

1970年代末から1980年代初頭にかけての一時期は、少数のエレクトロニクス好きのホビースト(趣味的にやっている人々)たちは、8ビットCPUコンピュータをキットなどから自作しその上でTiny BASICを動かしたり、その上でスタートレックなどのゲームを動かすことなどを楽しんでいた。

だが大多数の人々はコンピュータを実務に使いたいと感じており、キットではなく最初から完成品の、動作することが確実なコンピュータを求めていた。メーカー側はそうした要望に応えてターンキーシステム(キット品ではない、最初から動く完成品)を開発しそれにBASICインタプリタをROMに書き込んだ形で搭載するようになり、BASICは一気に当時のマイクロコンピュータ(パーソナルコンピュータ)の標準言語の地位を獲得した。この時に搭載されたBASICインタプリタはほとんどがマイクロソフト製で、同社躍進のきっかけとなった。また、マイクロソフト製BASICは中間コードを使用する構造になっており、汎用機を再現した極めてエミュレータに近いランタイム形式の実行環境でもあったため、当時の互換性が皆無なコンピュータ事情の中でも、スクリプト自体の移植は容易だった。

その後、(MS-DOS発表以前の)パソコンに、操作を提供するのにも使われ、しばしばROM-BASICとしてハードウェアに組み込まれた。電源投入後にエディタ込みで利用できることから、現在における、シェル、インタフェースとしての役割ももち、ローダなどの役割も担った。入力の効率化のため、省略形式での入力や、1980年代後半には、ラベルインデントへの内部的な対応、C言語への橋渡し、日本では漢字の利用など、様々な機種ごとの独自の発展を遂げた。当時のPCの処理速度は遅いので、処理の高速化が必要な部分はデータ形式でアセンブリ言語による処理を呼び出すなどの手法もとられた。

1980年代後半から1990年代前半ころにはC言語がパーソナルコンピュータのユーザにも少しずつ知られるようになり、早く知り、早くCコンパイラを入手した人から順に、(構造化以前の)BASICの代わりにC言語を使うことが増えていった。

一方で1990年代などでもプログラミングの専門家ではない数学者が、あいかわらず行番号を使用する数値計算用のBASICを開発するなどということ(UBASIC)も行われつづけた。

「方言」の乱立

BASICは1970年代後半から1980年代にかけて、当時黎明期にあり、次々と各社が製造に乗り出したパーソナルコンピュータマイクロコンピュータ)の各機種に続々と搭載されていくことになり、パーソナルコンピュータ業界の発展にも貢献した。

だが、前述の「標準化できなかった経緯」の節で説明したように、BASICを最初に開発したダートマス大の2人は今で言う「パブリックドメイン」でいいと漠然と考えていて(つまり、うかつなことに、権利を確保しておいて世の中のBASICの仕様をコントロールしようともせず)、また標準化団体のANSIも後手にまわってしまったので、BASICには「方言」が乱立する状況になってしまった。(関係者を弁護するなら、最初から標準化をしておかないと普及していくプログラミング言語に一体どのようなことが起きてしまうかということについて、開発者の2人や当時のANSIに限らず、当時はまだ誰も経験しておらず、そもそも誰にも用心・警戒心が無かった。)

マイクロコンピュータパーソナルコンピュータに標準搭載されたBASICは、たいてい各メーカーのひとつひとつの機種ごとに独自拡張が行われた(おもに画面操作やI/Oの直接操作などについて、その機種でしか通用しない、独自の仕様が次々と導入された)。コモドール社のPET 2001のCommodore BASICに類似したシャープのS-BASICSEGAのベーシックカートリッジ、次第にシェアを増やしたマイクロソフト製のBASIC(MBASIC、BASICA、G-BASIC、GW-BASICの移植版)や、その命令体系を引き継ぎ実装したものである、F-BASICHu-BASICカタカナで表現するG-BASIC(前述のマイクロソフトの物とは異なる)以外にも、C言語を意識したX-BASICなど、さまざまなBASICを各社が独自に開発した。

この結果、「あるパソコンのBASICで書かれたプログラムは、他のパソコンではそのままでは動かすことができない」という、残念な状態になってしまった。たとえBASICの開発会社が同じでも、別の機種では動かない状況になってしまったのである。BASICを用いていては、開発者はせっかく苦労してコンピュータプログラムを開発しても、たいていはわずか1機種でしか動かず、また企業がソフトウェアをビジネス目的で開発・販売しようとする場合でもBASICでプログラムを開発しては、わずか1機種のユーザにしか売れず、それではあまり儲からないので、はじめから開発を躊躇しがちになる、という状況だったのである。

プログラミング言語で最初から標準化をしておかないと、どのような残念な状況になってしまうか、ということを人類は初めて経験したわけで、BASICで得られた苦い教訓が、後に開発されるさまざまな高級言語で活かされていくことになり、プログラミング言語で「方言」が乱立しないようにし、機種を超えてひとつのコンピュータプログラムが使えるようにする施策、「プラットフォーム・フリー」戦略へと繋がっていくことになる。[独自研究?]

方言の例

PC-8800シリーズのN88BASICのドロー画面

メイン・メモリの制限による処理系の実装例

初期のTiny BASICはともかくとしても、BASIC実装処理系のメイン・メモリの制限により言語仕様が極めて制限された実装が存在した。

中間コードサイズを小さくしたり処理を速くする、機種依存性のあるテクニックの例

処理プログラムの大きさや速度の制限を改善あるいは回避するテクニックを紹介する。いくつかは、ソースの読みやすさを犠牲にするようなテクニックでもあった。

ただし、中間コードを採用している処理系では、?と入力してもPRINTに展開されるので、結果は変わらない。また、REM'と書くのはかえってサイズが増える。

コンパイラ

次のようなコンパイラがある。

しかし、パソコンに内蔵または標準添付されていたインタプリタと違い、コンパイラは別売であったり、高価であったり、実行にはランタイムライブラリを必要であったりする場合があった。このことから、BASICインタプリタによる開発に習熟したユーザーは、より高速で柔軟なプログラムを求めて、機械語アセンブリ言語)や、C言語などに移行していった。

また、コンパイラと称していても、実際はインタプリタとソースコードを同梱した実行ファイルを作るだけ、というものもある。中間表現と、そのインタプリタ、という構成のものもある。

行番号とGOTO文への批判

急速に広まったBASICだが、構造化機能の無いBASICは教育に使うな、などとコンピュータサイエンティストの一部から酷評されたりもした。1975年にはすでに、エドガー・ダイクストラから激しく批判された"How do we tell truths that might hurt?"などが知られる。

行番号とGOTO文は特に激しく批判された。(構造化前の)BASICのIF文とGOTO文を組み合わせて使用する文(「IF .... THEN GOTO ...」)を頻発せざるを得ず、IF + GOTO文を増やすほどスパゲティプログラムになってしまう、ということはしばしば指摘された。

さらにBASICには局所変数(ローカル変数)が無いなど、他にも問題は多い。つまり、プログラムのどこからでもアクセス可能な大域変数(グローバル変数)しかなく、これもまたスパゲティプログラムを誘発する要因である。

「基本BASIC」という標準化、およびその失敗

BASICの標準化が望まれたが、マイコン・パソコンの急激な普及で標準化は後手後手にまわり、各メーカーの独自拡張はすでに各機種のROMに書き込まれているわけで後から書き換えるわけにもいかず、各メーカーは競合関係にあり自社のものを標準に採用して他社のものは排除してくれと考えるわけで、後手にまわってしまった標準化団体も一部のメーカーだけを優遇するわけにもいかず、ともかく後手にまわってしまった標準化というのは非常に難しいので、 結局、「どの機種の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化の際に改訂として同じ番号を使うという形で旧規格として消滅した。

すでに多数の重要な機能は、各機種のBASICの「方言」として実装されてしまっていて後からそれを削るわけにもいかず、基本以外の高度な部分の標準化はされず乱立状態は放置されたので、結局、各社は高度な機能は方言で実装しつづけたわけで、実際上はBASICの標準化は失敗したままに終わった。

日本では1990年代後半から、高等学校大学入試センター試験の数学に、標準化された基本BASICの範囲で書かれたプログラミングが扱われるようになった。つまり、「基本BASIC」は実機では「有名無実」だが、(特定メーカーに依らないので)試験問題に使うのに無難な題材として使われる。

構造化BASIC

Full BASIC

ダートマスBASICは、他のBASIC(ケメニーらは「ストリート」BASIC、と呼んだ[注釈 2])とは異なって既に1970年代後半から構造化などが進んでおり、ANSIでは新しい規格の策定も進んでいたが、これをパソコン向けにアレンジしたTrue BASICが、1984年に開発された(日本ではクレオから発売)。構造化の他、行列演算の機能など、学術的(特に数学的)な方面の拡張も特徴である。そしてTrue BASICとほぼ同一の構造化BASICであるFull BASICがISO/IEC 10279 (Information technology−Programming languages−Full BASIC) がINCITS/ISO/IEC JTC 1によって1991年に規格化された。また日本でもJISによる翻訳として、JIS X 3003-1993『電子計算機プログラム言語 Full BASIC (The Programming Language Full BASIC)』が1993年に規格化された。

Full BASICの主な特徴
  • 構造化に対応する制御文を追加した(DOLOOPDO WHILELOOP WHILEなど)
  • IF文が多行に渡るブロックIFIFTHENELSEENDIF)も可能となった
  • LETを省略できないようにした(True BASICではOPTION NOLETまたはNOLETを実行すると省略可能)
  • スコープの概念を取り入れた
    • 外部副プログラム(EXTERNAL SUBEND SUB)や外部関数(EXTERNAL FUNCTIONEND FUNCTION)の中でローカル変数が使用できるようになった
    • 副プログラムと関数は戻り値を戻すかどうかで区別される
    • 再帰処理の実装が容易になった
  • 計算精度や丸めの方法を規定した
  • 配列の添字を1から始めるようにした(OPTION BASE命令で0から始まるようにすることも可能)
  • 行列演算機能
  • 構文のアドホックな所などを極力排除した
  • 予約語を極力少なくした
  • I/Oを直接操作するなどシステムに干渉する命令は持たないようにした(True BASICでは拡張ライブラリとして提供)
  • グラフィック命令を規定した。なお、(0, 0) が、デフォルトでは、コンピュータ系に多い左上ではなく数学などで伝統的な左下である(変更できる。高機能なBASICに多かった、任意にスクリーンとウインドウのそれぞれの座標を設定できるタイプである)
  • Minimal BASICの上位互換である
  • パソコン向けのそれまでのBASICとは命令の互換性が低い
    • サブルーチン(GOSUBRETURN)は規格として残ってはいるが、使用は推奨されない

QuickBASIC

マイクロソフトはFull BASIC規格の策定には参加しなかったが、1985年にFull BASICに類した構造化や特徴を追加した独自規格のQuickBASICを発売した。これは自社のMS-DOS用のGW-BASICの上位互換で、コンパイラ並に動作を高速にした上にコンパイルもできるようにしたもので、Version4.5まで発売した後に1991年Visual Basicへと繋がっていった。

QuickBASICとの互換性を考慮したフリーなBASICとしてQB64英語版FreeBASICがある。

Windowsの普及とVisual Basicの普及

MS-DOS上で動作するGUI拡張環境として、1985年にMicrosoft Windows 1.0が登場し、のちに独立したオペレーティングシステム (OS) としても普及を始めた。GUIオペレーティング環境はコンピュータの操作に直感性をもたらしたが、Windows上で動作するGUIアプリケーションソフトウェアは、ボタンのような画面上に表示された視覚的なGUI部品(ウィジェット、コントロール)をユーザーがマウスで操作することに反応して動作する、イベント駆動型のプログラムである。Windowsアプリケーション向けのプログラミング言語や開発環境として、マイクロソフトはC/C++を用いた開発ツール(Microsoft C/C++、のちのMicrosoft Visual C++)だけでなく、構造化BASICを用いた開発ツールとして「Visual Basic」(VB) も提供した。VBは前述のQuickBASICから発展したもので、Rapid Application Development (RAD) 方式の本格的な統合開発環境 (IDE) でもあり、生産性と直感性に優れていた。

Windows自体はC/C++を使って開発されており、マイクロソフトの開発エンジニアたちはC/C++に慣れていたわけだが、それでもBASICを見捨てることはしなかった。 もともとビル・ゲイツはAltair 8800向けのAltair BASICを最初の製品としてビジネスの道を切り開き、その後も多数の自社BASICを開発してマイクロソフトを大きくしたので、マイクロソフト社はBASICとともに大きくなってきたわけであり、簡単にBASICを捨ててしまうような選択はしなかったのである。また、マーケティング的(商売的)に見てもこの判断は賢かった。既存ユーザが受け入れやすい選択肢を提供することで、ユーザが他社に逃げてしまうことを防いだわけである。

Visual Basicでは、業務用のソフトウェア、プロフェッショナル用のソフトウェアなども多数開発されるようになった。Visual Basicは旧BASICとは異なり、もはや「初心者用」でも「ホビー用」でもなかった。C言語やC++同様に、プロでもその気になればまともに使える言語になったのである。なお、C/C++は言語仕様上、そもそもGUIプログラミングや統合開発環境との親和性、コンパイル速度などに問題があった。プロパティなどの便利な機能をサポートし、またシンプルな言語仕様を持つVBのほうがGUIプログラミングに向いていた、という側面もある。VBは後発のDelphiC++Builderの設計思想にも影響を与えている。

また、「PC/AT互換機とWindowsの組み合わせ」というプラットフォームが一般化したことで、1970年代や1980年代には起きていた「BASICの方言の乱立」の問題が解消されていくことになった。Windowsが走るマシンであれば、どのメーカーが製造したパソコンであろうが、MicrosoftのVisual Basicが「標準的なBasic」という位置づけになっていき、いわば「標準語」のようなものがひとつに定まったのである。ただしVisual Basicは、Windowsというプラットフォームに依存する言語、開発環境にすぎなかった。Windows以外のMacintoshやLinuxといったプラットフォームでは使えないものであった。

なお、VBのサブセットであり、アプリケーションを制御するためのドメイン固有言語・マクロ記述言語としてVisual Basic for Applications (VBA) も登場し、主にMicrosoft Office (MS Office) 向けに提供されている。Officeに統合開発環境が標準的に組み込まれており、専業のアプリケーション開発者以外の一般ユーザーにも利用可能であることからエンドユーザー・コンピューティングの普及に寄与し、事務作業の効率アップやプログラミングの入門にも使われることになり、入門者をプログラミングの世界にいざなう役割も担った。ただし、VBAのマクロ機能を悪用したコンピュータウイルスも出現し、利便性と引き換えにセキュリティホールの温床にもなったことから、Office 2007以降の既定のファイル形式ではVBAは使えなくなっており、また既定でVBAは無効化されている。

VBから発展したVB.NETは、C#とともに登場したモダンなオブジェクト指向言語であり、アプリケーションの開発および実行に.NET Framework環境を必要とする。のちにMono.NET Coreにも移植され、WindowsだけでなくLinuxmacOSでも利用可能なクロスプラットフォームな言語となった。Xamarinを利用することでAndroidiOSで動作するアプリケーションも開発することができる[5][6]

地位の低下

だが大学ではBASICの使用は構造化BASICも含めて減っていった。大学では、構造化言語の中でも、特定メーカーに依存せずプラットフォームを超えて使え、方言が乱立しなかったC言語を教えることが一般化した。また、特定のOSやCPUアーキテクチャに依存せず、無料で使えるJavaなどの洗練された後発言語の普及により、BASICは開発環境としては選択肢のひとつでしかなくなっていった。

なお、コンパイラで開発した場合、実行ファイルとは別に、巨大なランタイムライブラリが必要となる処理系が多い。このため配布に必要なファイルのサイズが大きくなり、敬遠されることもある。

もともとVB.NETは姉妹言語のC#F#と比べて、新しい言語機能のサポートが遅れる傾向にあったが、マイクロソフトは2023年2月、VB.NETには今後新しい言語構文を追加せず、安定性に重きを置く方針であることを発表した[7]。VB.NETのサポート自体は継続されるが、言語の進化は止まっている。

プログラミング言語の人気度 (popularity) を示す指標のひとつとしてTIOBEインデックスが存在する。この指標は実際の言語利用状況とはやや異なるが、2023年9月現在、PythonやC系統の言語が上位を独占する中、Visual Basicは一定の地位を維持している[8]。TIOBEが発表した2021年11月のランキングでは、トップ10は上から順に、Python、C、Java、C++、C#、Visual Basic、JavaScript、アセンブリ言語、 SQL、PHPとなっていて[9]、つまり2021年11月時点でVisual Basicは6位だった。一方、RedMonkによる2021年6月のランキングでは、VBは20位以内にも入っておらず圏外だった[10]

その他の現代化BASIC

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を発売した。

オブジェクト指向とBASIC

現在[いつ?]、BASICもオブジェクト指向化が見受けられる。その代表例がVisual Basic .NETREALbasicActiveBasicFreeBASIC等で、四者とも既に完全なオブジェクト指向言語になっていると言える。

構造化以前のBASIC

(構造化以前の)BASIC
(構造化以前の)BASIC
Atari 8ビット・コンピュータ用のAtari BASIC英語版 (1979年 (45年前) (1979))
パラダイム 非構造化プログラミング命令型プログラミング手続き型プログラミングオブジェクト指向プログラミング ウィキデータを編集
登場時期 1964年4月1日 (59年前) (1964-04-01)
設計者 John G. Kemeny・Thomas E. Kurtz
開発者 トーマス・E・カーツ、ジョン・ジョージ・ケメニー、メアリー・ケネス・ケラー ウィキデータを編集
主な処理系

ダートマスBASIC, Tiny BASIC, Microsoft BASIC, QuickBASIC, QB64, Casio Basic, Turbo Basic(PowerBASIC), Applesoft BASIC, Atari BASIC, BBC BASIC, Commodore BASIC, Liberty BASIC, Sinclair BASIC,

TI-BASIC
影響を受けた言語 FORTRAN、FORTRAN II、JOSS、ALGOL ウィキデータを編集
影響を与えた言語

Visual Basic, Visual Basic .NET, Hot Soup Processor, COMAL,

GRASS
拡張子 bas ウィキデータを編集
テンプレートを表示

構造化以前のBASICは、行番号とGOTO文があることが特徴のひとつである。

ステートメントとコマンド

BASICのエッセンスを説明し簡単なプログラム例を示すために、BASICのステートメントとコマンドについて説明する。 本来のBASIC、ダートマスBASICではステートメントとコマンドを明確に区別する。ダートマスBASICのルールを説明する[11]

行番号を持ち、プログラム本文の中に書かれるコード行はステートメントstatement)と呼ぶ。

たとえば次のようなキーワード(予約語)から始まるものがステートメントである。

処理系に指示を与えるワード(プログラムの外の命令)はコマンド(命令、command)と呼ぶ。

たとえば次のようなワードである。

プログラム例、実行法、出力例

きわめてシンプルな例を挙げる。

画面に次のように入力したとする。

 10 REM 5つ数える
 20 FOR I = 1 TO 5
 30 PRINT I
 40 NEXT

するとBASICの処理系は、行番号10から40までの文をプログラムとして扱う。次にRUNと入力し(すると「40 NEXT」の次の行に「RUN」と表示され)リターンキーなどを押すと、行番号10の行すなわち「10 REM 5つ数える」から順に実行され、行番号20から行番号40まではループとして扱い5回繰り返す。この場合の出力は次のとおり。

1
2
3
4
5

なお、「REM」はステートメントであり、ソースコードを読む人のための注釈文(: remark)の文頭に置かれる。REMで始まる行はプログラムの実行結果に何ら影響を与えない。

また、前述のプログラムに編集を加えたい場合は、続いて例えば次のように入力する。

 10 REM 5つ数える(3だけ飛ばす)
 25 IF I = 3 THEN GOTO 40

このように入力すると、行番号10の文は書き換えられ(つまり上書きされ、以前のものは消え)、20行目と30行目の間に行番号25の「 25 IF I = 3 THEN GOTO 40」が挿入された、とBASICの処理系は判断する。 そしてRUNと入力すると、やはり行番号10から実行し、出力は次のとおり。

1
2
4
5

主な特徴

具体例

Web上で動くBASIC

Webブラウザ上でBASICの動作をエミュレートするWebサイト・Webサービスが公開されている。手軽に最低限の雰囲気を理解することができる。

構造化以前のBASICの具体的実装例

構造化以前のBASICが動作していたコンピュータ実機の新品販売は、ほとんどは終了となっている。そのためインターネットオークションなどを利用して、中古品を入手するしかない。

各組織、各社のBASIC

以下、シャープのBASICは「コモドール系」と呼ぶことも可能ではある

マイクロソフト系

これらは命令セットの仕様が共通なだけで、必ずしもマイクロソフト製というわけではない。

ゲーム機

すでに新品販売されていないゲーム機のBASICは以下のとおり。

現在販売されているマシンで動くBASIC

現在新品で販売されている復刻機のBASIC

最近[いつ?]、復刻パソコン、つまり1980年代などのパソコンが、ほぼ以前どおりのシステム内容で(しかも端子類はHDMIUSBに変更されていたり、SDメモリカード用スロットなども追加されていたりするなど、最近[いつ?]の仕様に改良されて)、新品で販売されるようになっている。それらのほとんどでBASICが動き、ユーザはBASICプログラミングを楽しむことができる。

この節の加筆が望まれています。 (2021年4月)

現行パソコンで動くBASIC

現在、新品で販売されているパソコン上で動くBASIC

マイクロソフトBASIC・ならびにその類似系
独自系
Full BASIC系(規格準拠)
旧式構文系

Android OS用のBASIC

Android OS上で動くBASIC、つまりAndroidスマートフォン群やAndroidタブレット群などで動くBASICは以下のとおり。

iOS用のBASIC

iOS上で動く(つまりiPhoneiPadで動く)BASICは以下のとおり。

現行ゲーム機などのBASIC

現在新品で販売されている(子供向けの)ゲーム機のBASIC


関連項目

脚注

注釈

  1. ^ GUIアプリケーション開発やオブジェクト指向プログラミング機構の搭載、OpenGLSDL等多数のライブラリを使用可能。
  2. ^ 英語で「走り屋による競走」を意味する Street racing といったような street の語義を意識して使っている。

出典

  1. ^ 用語検索 - ZDNET Japan
  2. ^ YouTube Dartmouthチャンネル「Birth of BASIC」
  3. ^ a b c d e f g h i j k l m n o History of BASIC
  4. ^ a b 小池慎一「6.BASICプログラミングテクニック」『マイコンピュータ No.13』CQ出版社、1984年6月1日、114頁。 
  5. ^ Xamarin.Forms using Visual Basic.NET - Xamarin | Microsoft Learn
  6. ^ Visual Basic in Xamarin.Android and Xamarin.iOS - Xamarin | Microsoft Learn
  7. ^ Update to the .NET language strategy - .NET Blog
  8. ^ TIOBE Index - TIOBE
  9. ^ あの人気言語が下降傾向?Pythonは首位維持--TIOBEプログラミング言語ランキング - ZDNET Japan
  10. ^ The RedMonk Programming Language Rankings: June 2021 – tecosystems
  11. ^ DARTMOUTH, BASIC at 50
  12. ^ 「BASICの海へ」──「MZ-80」伝説のマニュアル、シャープが公開 Twitterがきっかけ - ITmedia NEWS
  13. ^ microsoft/GW-BASIC: The original source code of Microsoft GW-BASIC from 1983
  14. ^ About BUG - History”. www.bug.co.jp. 2019年11月12日閲覧。
  15. ^ PasocomMini PC-8001製品情報 │ パソコンミニ公式ウェブサイト
  16. ^ 十進BASICのホームページ
  17. ^ AndroidでBASIC!で遊ぼう[改訂版]kindle 2016年11月20日発行 著者:BASIC!友の会 発行:BASIC!友の会出版

関連書籍