BASIC(Beginner's All-purpose Symbolic Instruction Code)[ 1 ]は、使いやすさを重視して設計された汎用性の高い高水準プログラミング言語のファミリーです。オリジナル版は、 1964年にダートマス大学のジョン・G・ケメニーとトーマス・E・カーツによって作成されました。彼らは、科学以外の分野の学生がコンピュータを使えるようにしたいと考えていました。当時、ほとんどすべてのコンピュータはカスタムソフトウェアの作成を必要とし、それを学ぶのは科学者や数学者に限られていました。
プログラミング言語に加えて、ケメニーとカーツは、複数のユーザーがリモート端末上でBASICプログラムを同時に編集・実行できるダートマス・タイムシェアリング・システム(DTSS)を開発した。この方式は、 1960年代後半から1970年代初頭にかけて、PDP-11やデータゼネラル・ノヴァといったミニコンピュータシステムで広く普及した。ヒューレット・パッカードはこの方式に対応したコンピュータ製品ラインを開発し、 1960年代後半にHP2000シリーズを発表、1980年代まで販売を続けた。初期のビデオゲームの多くは、こうしたBASICのバージョンのいずれかにそのルーツを持つ。
1970年代半ばにマイクロコンピュータが登場したことで、1975年のMicrosoft BASICをはじめとする複数のBASIC方言が開発されました。これらのマシンのメインメモリは4KB程度と非常に小さかったため、 Tiny BASICと呼ばれる 様々な方言も作成されました。BASICは当時のほぼすべてのシステムで利用可能で、1970年代後半に登場した家庭用コンピュータシステムの事実上のプログラミング言語となりました。これらのPCには、多くの場合、マシンのファームウェアまたはROMカートリッジにBASICインタープリタがデフォルトでインストールされていました。
1990年代には、より高性能なマイクロコンピュータが市場に登場し、高度な機能を備えたプログラミング言語(PascalやCなど)がそのようなコンピュータで実行可能になったため、BASICの人気は低下しました。当時、ほとんどの非技術系のパーソナルコンピュータユーザーは、独自のプログラムを作成するよりも、既製のアプリケーションに頼っていました。1991年、マイクロソフトは、BASICのアップデート版とビジュアルフォームビルダーを組み合わせたVisual Basicをリリースしました。この言語の使用が再び活発化し、「VB」はVB.NETの形で主要なプログラミング言語として残っています[ 2 ] [ 3 ]。一方、BASICの趣味のコミュニティはより広く存在し続けています[ 4 ] [ 5 ] 。
ジョン・G・ケメニーはダートマス大学数学科の学科長でした。数学教育における革新者としての彼の評判に基づき、1959年に同大学はアルフレッド・P・スローン財団から50万ドルの助成金を受け、新しい学科棟を建設しました。[ 6 ]トーマス・E・カーツは1956年に学科に加わり、1960年代からケメニーとカーツは、従来のSTEM分野以外の学生にもプログラミング能力が必要であるという点で意見が一致していました。ケメニーは後に、「私たちのビジョンは、キャンパス内のすべての学生がコンピュータにアクセスでき、どの教員も必要に応じて教室でコンピュータを使用できることでした。それだけのことでした」と述べています。[ 7 ]
ケメニーとクルツは、以前にも簡略化された言語であるDARSIMCO (Dartmouth Simplified Code) とDOPE (Dartmouth Oversimplified Programming Experiment) で2 つの実験を行っていた。これらは、1 年生の授業を超えて進展することはなかった。その後、 FortranとALGOLを使用した新しい実験が行われたが、クルツはこれらの言語は自分たちの望むものには難しすぎると結論付けた。クルツが指摘したように、Fortran には奇妙な形式のコマンドが多数あり、特にループを指定するための「ほとんど覚えられない慣習: 。 '1, 10, 2' なのか '1, 2, 10' なのか、行番号の後のカンマは必要なのか不要なのか」[ 7 ]という問題があった。DO 100I=1,10,2
さらに、即時フィードバックが全くないことが大きな問題でした。当時のマシンはバッチ処理を使用しており、プログラムの実行に長い時間がかかりました。カーツがMITを訪れていたとき、ジョン・マッカーシーはタイムシェアリングが解決策になると言いました。1台のマシンで処理時間を多くのユーザーに分割することで、ユーザーは(遅い)コンピュータを独占しているような錯覚を抱くことができます。[ 8 ]小さなプログラムであれば、数秒で結果が返されます。これにより、タイムシェアリングを使用したシステムと、特にSTEM以外の学生が使用するための新しい言語への関心が高まりました。[ 7 ]
ケメニーはBASICの最初のバージョンを書いた。BASICという頭字語は 、トーマス・クルツの未発表論文の名前から来ている。[ 9 ]この新しい言語はFORTRAN IIに大きく影響を受けており、ステートメントは1行に1つ、ループや分岐のターゲットを示すために番号が使用され、多くのコマンドはFortranと似ているか同一だった。しかし、構文は改善できるところは変更された。たとえば、覚えにくいループははるかに覚えやすいに置き換えられ、DOで使用される行番号は代わりにで示されるようになった。[ a ]同様に、元々書かれたマシンの特定の命令に構文が一致するFortranの難解なステートメントは、より単純なになった。これらの変更により、言語ははるかに独自性がなくなり、全体的な構造と感触は元のFORTRANに似ていた。[ 7 ]DOFORI=1TO10STEP2NEXT IIFIFI=5THENGOTO100
このプロジェクトは、国立科学財団から30万ドルの助成金を受け、その資金でGE-225コンピュータを処理用に購入し、また、入出力に使用されたテレタイプモデル33テレプリンタを処理するDatanet-30リアルタイムプロセッサも購入した。12人の学部生からなるチームが約1年間このプロジェクトに取り組み、DTSSシステムとBASICコンパイラの両方を作成した。[ 7 ] BASIC言語の最初のバージョンは1964年5月1日にリリースされた。[ 10 ] [ 11 ]
当初、BASICは単純な数学的処理のサポートに重点を置いており、バッチ言語としての初期実装から行列演算をサポートし、1965年までに文字列機能が追加されました。大学での使用は急速に拡大し、メインCPUをGE-235 [ 7 ]に、さらに後にGE-635に交換する必要が生じました。1970年代初頭には、ダートマス大学のマシンに数百台の端末が接続され、その一部は遠隔接続されていました。
言語の使用が広く普及することを望んでいた設計者たちは、コンパイラを無償で提供した。1960年代にはソフトウェアは有料商品となったが、それまでは高価なコンピュータに付属するサービスとして無償で提供されており、通常はリースでしか入手できなかった。彼らはまた、ニューハンプシャー州ハノーバー周辺の高校やニューイングランド全域の高校に、ダイヤルアップ電話回線でダートマス大学に接続されたテレタイプ モデル 33 およびモデル 35 テレプリンタ端末で利用できるようにし、言語の普及に多大な努力を払った。その後、BASIC の他の方言が登場するにつれて、ケメニーとカーツのオリジナルの BASIC 方言はDartmouth BASICとして知られるようになった。
ニューハンプシャー州は2019年にハノーバーに「最初のユーザーフレンドリーなプログラミング言語」の作成を記した高速道路の歴史標識を設置し、その功績を認めた。[ 12 ]
BASICの登場は、タイムシェアリングシステムへのより広範な動きの一環として起こった。1950年代後半に初めて概念化されたこのアイデアは、1960年代初頭までにコンピュータ業界で非常に主流となり、その提唱者たちは、ユーザーが「一般家庭が電力会社から電気や水道を購入するのとほぼ同じように、コンピュータの使用時間を購入する」未来について語るようになった。[ 21 ]
ダートマス・プロジェクトに携わったゼネラル・エレクトリックは、独自の基盤となるオペレーティングシステムを開発し、Mark I と呼ばれるオンライン・タイムシェアリング・システムを立ち上げた。Mark I は、BASIC を主要なセールスポイントの一つとして採用していた。新興分野の他の企業もすぐにこれに追随し、Tymshare は1968 年にSUPER BASICを発表し、CompuServe は1969 年の創業時にDEC-10版を提供し、1970 年代初頭には BASIC は汎用メインフレーム・コンピュータでほぼ普遍的に使われるようになった。IBMも最終的には 1973 年に VS-BASIC を発表してこの仲間入りを果たした。 [ 22 ]
BASIC を使用したタイムシェアリングサービスは一時的には成功したが、以前予測されていたような広範な成功は実現しなかった。同時期にミニコンピュータ、特に 1970 年代半ばに低価格のマイクロコンピュータが登場したことで、誰もがオンライン時間を購入するのではなく、独自のシステムを購入して運用できるようになった。オンライン時間は通常、1 分あたり ドルで課金されていた。[ b ] [ 23 ]

BASICは、その性質上、小型であるため、タイムシェアリングサービスと同時期に台頭していたミニコンピュータ市場への移植に自然と適していました。これらのマシンはメインメモリ が小さく、現代の用語ではわずか4KB程度[ c ]で、コンパイラを実用的にするハードドライブのような高性能ストレージもありませんでした。これらのシステムでは、BASICは作業メモリの必要量が少ないため、コンパイラではなくインタプリタとして実装されることが一般的でした。[ d ]
特に重要な例として、HP Time-Shared BASICが挙げられます。これは、オリジナルの Dartmouth システムと同様に、2 台のコンピュータを連携させてタイムシェアリング システムを実現していました。1 台目はHP 2100シリーズの低価格マシンで、ユーザー入力の制御、プログラムのテープまたはディスクへの保存と読み込みに使用されました。もう 1 台は、同じ基盤マシンの高価格バージョンで、プログラムを実行して出力を生成しました。約 10 万ドルの費用で、16 ~ 32 人のユーザーが同時に実行できるマシンを所有することができました。[ 24 ] HP 2000 としてバンドルされたこのシステムは、タイムシェアリングを提供する最初のミニ プラットフォームであり、すぐに大成功を収め、HP をDECとData General (DG)に次ぐミニ コンピュータ分野で 3 番目に大きなベンダーに押し上げました。 [ 25 ]
1960年代半ばからミニコンピュータ分野のリーダーであったDECは、当初BASICを無視していた。これは、RAND Corporationとの協力関係によるもので、RAND CorporationはBASICと概念的に非常によく似たJOSS言語を実行するためにPDP-6を購入していた。[ 26 ]このことがきっかけとなり、DECはJOSSの小型で改良版であるFOCALを導入し、1960年代後半に大々的に宣伝した。しかし、タイムシェアリングシステムがBASICを広く提供し、ミニコンピュータ分野の競合他社もすべて同じことをしていたため、DECの顧客はBASICを強く求めていた。経営陣が顧客の要望を繰り返し無視した後、David H. Ahlは自らPDP-8用のBASICを購入し、教育市場で大きな成功を収めた。1970年代初頭までに、FOCALとJOSSは忘れ去られ、BASICはミニコンピュータ市場でほぼ普遍的なものとなった。[ 27 ] DECはその後、RSTS/Eタイムシェアリングオペレーティングシステムで使用するためのアップデート版BASIC-PLUSを発表した。
この時期には、マイク・メイフィールドの『スタートレック』をはじめとする、BASICで書かれたシンプルなテキストベースのゲームが数多く制作された。デビッド・アールは、FOCALから移植されたものも含め、これらのゲームを集め、自身が編集した教育ニュースレターに掲載した。後に、これらのゲームの一部を『101 BASIC Computer Games』という書籍にまとめ、1973年に出版した。[ 28 ]同時期に、アールは教育用小型コンピュータ、初期のパーソナルコンピュータの開発にも携わった。経営陣がこの構想を支持しなかったため、アールは1974年にDECを退社し、画期的なコンピュータ雑誌『 Creative Computing』を創刊した。同書は人気を博し、何度も再版された。[ 29 ]



1970年代半ばに最初のマイクロコンピュータが登場したことが、BASICの爆発的な成長の始まりでした。BASICには、マイクロコンピュータに興味を持った若い設計者やコンピュータ愛好家の間でかなりよく知られていたという利点がありました。彼らの多くは、ミニコンピュータやメインフレームでBASICを見たことがあるからです。1975年のダイクストラの有名な判断「BASICに触れたことのある学生に優れたプログラミングを教えることは事実上不可能です。彼らは潜在的なプログラマとして、再生の望みがないほど精神的に損なわれています」[ 30 ]にもかかわらず、 BASICは、訓練を受けていない人でも使用できるほど高水準であり、当時のマイクロコンピュータに収まるほど小さい数少ない言語の1つであり、初期のマイクロコンピュータの事実上の標準プログラミング言語となりました。
BASICの最初のマイクロコンピュータ版は、ビル・ゲイツ、ポール・アレン、モンテ・ダビドフが、新しく設立したマイクロソフト社のために共同で作成した。 [ 31 ]これは、マシン本体の発売直後にMITSからパンチテープ形式でAltair 8800向けにリリースされ、 [ 32 ] BASICは初期のマイクロコンピュータの主要言語としての地位をすぐに確立した。ホームブリュー・コンピュータ・クラブのメンバーがこのプログラムのコピーを配布し始めたため、ゲイツは「趣味家への公開書簡」を書いて、この初期のソフトウェア海賊行為の事例について不満を述べた。
ゲイツの手紙への返答として、また4KB マシンで実用的に動作するさらに小さなBASICを作成するために、[ e ]ボブ・アルブレヒトはデニス・アリソンに独自の言語バージョンを作成するよう促した。BASIC言語の簡略版インタープリタの設計と実装方法は、1975年に発行されたPeople's Computer Companyニュースレターの最初の3つの季刊号に掲載されたアリソンの記事で取り上げられ、ソースコード付きの実装はDr. Dobb's Journal of Tiny BASIC Calisthenics & Orthodontia: Running Light Without Overbyteに掲載された。これにより、機能を追加したりその他の改良を加えたさまざまなTiny BASICが生まれ、トム・ピットマンとリーチェン・ワンのバージョンは特に有名になった。[ 33 ]
当時マイクロソフトと呼ばれていたマイクロソフトは、 MOS 6502用のインタープリタを移植し、MOS 6502 はすぐに 8 ビット時代の最も人気のあるマイクロプロセッサの 1 つです。新しいマイクロコンピュータが登場し始めると、特にTRS-80、コモドール PET、Apple IIの「1977 年の三位一体」は、MS コードのバージョンを内蔵するか、すぐに新しいモデルにそれを搭載しました。オハイオ サイエンティフィックのパーソナル コンピュータも、この時期にこの流れに加わりました。1978 年までに、MS BASIC は事実上の標準となり、 1980 年代のほとんどすべてのホーム コンピュータにROMとして搭載されました。起動時に、ダイレクト モードの BASIC インタープリタが表示されました。
Commodore Business Machinesには、Microsoft BASIC をベースにしたCommodore BASICが含まれています。 Apple II と TRS-80 にはそれぞれ 2 つのバージョンの BASIC があります。マシンの初期リリースに付属する小型の入門バージョンと、プラットフォームへの関心が高まるにつれて導入された Microsoft ベースのバージョンです。新しい企業がこの分野に参入すると、BASIC ファミリーを微妙に変更する追加バージョンが追加されました。Atari 8 ビット コンピュータは、 Microsoft BASIC から派生していない8 KB Atari BASICを使用しています。 Sinclair BASIC は1980 年に Sinclair ZX80とともに導入され、後に Sinclair ZX81と Sinclair ZX Spectrum用に拡張されました。BBC が発行したBBC BASICは、 Acorn Computersによって開発され、追加の構造化プログラミングキーワードと浮動小数点機能を組み込んでいます。
この時期にBASICの人気が高まるにつれ、コンピュータ雑誌はビデオゲーム、ユーティリティ、その他のプログラムのBASICの完全なソースコードを掲載するようになった。BASICは単純な性質を持つため、雑誌からコードを入力してプログラムを実行するのは簡単なことだった。特定のコンピュータ向けのプログラムを掲載した雑誌もいくつか発行されたが、一部のBASICプログラムは汎用的であると考えられており、BASICのどのバージョンでも(場合によってはわずかな変更を加えるだけで)使用できるものもあった。入力プログラム集も多数出版され、特にAhlはオリジナルの101 BASICゲームをMicrosoft方言に変換したバージョンをCreative ComputingからBASIC Computer Gamesとして出版した。この本とその続編は、BASICを実行するほぼすべてのプラットフォームに簡単に変換できる数百のすぐに使えるプログラムを提供した。[ 28 ] [ 34 ] [ 35 ]この本は、家庭用コンピュータ市場が始まったばかりの1978年に書店に並び、最初のミリオンセラーのコンピュータ書籍となった。後のパッケージ、例えば Learn to Program BASIC なども、入門的な焦点としてゲームを取り入れるようになった。すぐに中小企業環境で広く普及したビジネス向けのCP/Mコンピュータでは、 Microsoft BASIC ( MBASIC ) が主要なアプリケーションの 1 つであった。[ 36 ]
1978年、デビッド・リーンは『BASICハンドブック:BASICコンピュータ言語百科事典』の初版を出版し、78種類以上のコンピュータのキーワードを網羅した。1981年までに、第2版では250種類以上のコンピュータのキーワードが網羅され、マイクロコンピュータ時代の爆発的な成長が示された。[ 37 ]

IBMがIBM PCを設計していたとき、既存のホームコンピュータのパラダイムに従って、BASICインタープリタを内蔵しました。これはMicrosoftから入手したもので、IBM Cassette BASICです。Microsoftは、 IBM Disk BASIC (BASIC D)、IBM BASICA (BASIC A)、GW-BASIC (IBMのROMを必要としないBASICA互換バージョン) [ 38 ]、QBasicなど、 MS-DOS / PC DOS用のBASICの他のバージョンもいくつか作成しており、これらはすべて通常、マシンにバンドルされていました。さらに、パワーユーザーやホビイスト向けにMicrosoft QuickBASIC Compiler (1985)、プログラマー向けにMicrosoft BASIC Professional Development System (PDS)も作成しました。Turbo Pascal - パブリッシャーのBorlandは、1985年にTurbo Basic 1.0をリリースしました(後継バージョンはPowerBASICという名前で販売されました)。
Unix ライクなシステムでは、 XBasicや X11-Basicなどの特殊な実装が作成されました。[ 39 ] XBasic はXBLiteとしてMicrosoft Windowsに移植され、SmallBasic、yabasic、Bywater BASIC、[ 40 ] [ 41 ] nuBasic、 [ 42 ] MyBasic、[ 43 ] Logic Basic、[ 44 ] Liberty BASIC、wxBasicなどのクロスプラットフォーム版が登場しました。一方、FutureBASIC と Chipmunk Basic は Apple Macintosh を対象としており、 yabはBeOS 、 ZETA 、 Haiku向けに最適化されたyabasicのバージョンです。[ 45 ]
これらの後のバージョンでは、文字列操作やグラフィックスのサポートの改善、ファイルシステムへのアクセス、追加のデータ型など、多くの拡張機能が導入されました。さらに重要なのは、追加の制御構造やローカル変数をサポートする適切なサブルーチンなど、構造化プログラミングのための機能でした。[ 46 ]統合開発環境(IDE)と電子ヘルプファイルの追加により、製品は扱いやすくなり、学習ツールや学校のカリキュラムをサポートしました。
1989年、Microsoft Pressは、 IBM-PC互換システムとApple Macintoshを使用している独学の学習者にBASICプログラミングを教えるために設計された書籍とソフトウェアのシステムであるLearn BASIC Nowを出版しました。Learn BASIC Nowには、Microsoft QuickBASICインタープリタとMichael HalvorsonとDavid Rygmyrによって書かれたプログラミングチュートリアルを含むソフトウェアディスクが含まれていました。Learn BASIC Nowのような学習システムは構造化BASICを普及させ、QuickBASICが400万人のアクティブユーザーのインストールベースに到達するのに貢献しました。[ 47 ]
1980年代後半には、多くのユーザーが自分でプログラミングを学ぶのではなく、他人が作成した既製のアプリケーションを使用するようになり、プロの開発者は小型コンピュータで幅広い高度な言語を利用できるようになりました。C 、そして後にC++が、プロの「パッケージ」アプリケーション開発で選ばれる言語となりました。[ 48 ] [ 49 ]
BASIC が引き続き満たしてきたニッチは、趣味のビデオゲーム開発でした。当時、ゲーム作成システムやすぐに利用できるゲームエンジンはまだ黎明期でした。Atari STにはSTOS BASICが、AmigaにはAMOS BASICがこの目的で使用されていました。Microsoft は、GW-BASIC 用の DONKEY.BAS で初めて BASIC をゲーム開発に活用し、その後 QuickBASIC 用の GORILLA.BAS と NIBBLES.BAS を発表しました。QBasicは活発なゲーム開発コミュニティを維持しており、[ 50 ] [ 51 ]これが後にQB64やFreeBASIC の実装を生み出すのに役立ちました。[ 52 ]この市場の初期の例としては、趣味の開発者向けにリリースされた QBasic ソフトウェアパッケージ Microsoft Game Shop (1990) があり、QBasic で簡単にカスタマイズできる 6 つの「アーケードスタイル」ゲームが含まれていました。[ 53 ]
2013年に、 QBasicで書かれ、現代のコンピュータ向けにQB64でコンパイルされたBlack AnnexというゲームがSteamでリリースされました。[ 54 ] [ 55 ] Blitz Basic、Dark Basic、SdlBasic、Super Game System Basic、[ 56 ] PlayBASIC、[ 57 ] CoolBasic、[ 58 ] AllegroBASIC、[ 59 ] ethosBASIC、[ 60 ] GLBasicとBasic4GLがさらにこの需要を満たし、最新のRCBasic、[ 61 ] NaaLaa、[ 62 ] AppGameKit、[ 63 ] Monkey 2、Cerberus-Xに至るまで続きました。[ 64 ]
1991 年、マイクロソフトはQuickBASICの進化形であるVisual Basicを発表しました。この言語には、ブロック構造の制御文、パラメータ付きサブルーチン、オプションの静的型付けなどQuickBASIC の構成要素に加え、「With」や「For Each」などの他の言語のオブジェクト指向構成要素も含まれていました。宣言用の Dim キーワード、「Gosub」/Return 文、エラー箇所を特定するために使用できるオプションの行番号など、前身の言語との互換性も一部残されていました。Visual Basic の開発の重要な推進力となったのは、表計算ソフトである Microsoft Excel の新しいマクロ言語としての役割でした。当初は趣味の言語として売り出していたマイクロソフトの多くの社員の予想に反して、この言語は、比較的安定した最初のバージョンと広く考えられている VB バージョン 3.0 のリリース後まもなく、小規模なカスタムビジネスアプリケーションで広く使用されるようになりました。マイクロソフトはまた、Visual Basic for ApplicationsとEmbedded Visual Basicというスピンオフも発表しました。
多くの上級プログラマーは依然としてその使用を嘲笑していたが、VB は中小企業のニーズに効率的に対応した。当時、Windows 3.1 を実行するコンピューターは十分に高速化しており、大量のデータが関係しない限り、「遅い」言語を使用しても、多くのビジネス関連のプロセスが「瞬く間に」完了することができた。多くの中小企業の経営者は、独自の特別なニーズを満たすために、数晩で小さくても便利なアプリケーションを作成できることに気づいた。最終的に、VB3 の長いライフサイクルの中で、Visual Basic の知識は市場価値のある仕事のスキルとなった。Microsoft は、1996 年にVBScript を、2001 年にVisual Basic .NETもリリースした。後者は基本的にC#やJavaと同じパワーを持ちながら、オリジナルの Basic 言語を反映した構文を持ち、 Mono-Basicなどの実装を通じてクロスプラットフォーム機能も備えている。[ 65 ]イベント駆動型GUI ビルダーを備えた IDE は、他の高速アプリケーション開発ツールにも影響を与え、特にBorland SoftwareのObject Pascal用Delphiや、 Lazarusなどの派生ツールが有名です。[ 66 ] [ 67 ]
オリジナルの Visual Basic の最終バージョン 6.0 の主流サポートは 2005 年 3 月 31 日に終了し、その後 2008 年 3 月に延長サポートが行われました。 [ 68 ]根強い人気があるため、[ 69 ]サードパーティによるサポートの継続の試みが存在します。[ 70 ] 2017 年 2 月 2 日、マイクロソフトは VB.NET の開発が C# の開発と並行して行われなくなることを発表し、[ 71 ] 2020 年 3 月 11 日には、VB.NET 言語の進化も終了したことが発表されました。[ 72 ]それでも、この言語は引き続きサポートされました。[ 73 ]

1990 年以降、QBasic に影響を受けたオープンソースのQB64やFreeBASIC、Visual Basic スタイルのRapidQ、HBasic、Basic For Qt、Gambasなど、他の多くの BASIC 方言も登場しました。[ 4 ]現代の商用版には、PureBasic、PowerBASIC、Xojo、Monkey X、True BASIC (Kurtz が経営する会社による Dartmouth BASIC の直接の後継) などがあります。
現在では、Microsoft のSmall BasicやGoogleの wwwBASIC など、ウェブベースのシンプルな BASIC インタープリタもいくつか存在します。 [ 74 ]また、 NS Basicのように、 BASIC をJavaScriptに変換するコンパイラもいくつか存在します。[ 75 ]

Mobile Basic [ 76 ] [ 77 ]などの以前の取り組みを基に、現在ではスマートフォンやタブレット向けに多くの方言が利用可能になっている。
ゲーム機では、ニンテンドー3DSとニンテンドーDSi用の「プチコンピュータ」というアプリケーションで、DSボタンをサポートするBASICの少し変更されたバージョンでプログラミングできます。ニンテンドースイッチ向けにもバージョンがリリースされており、カスタムRaspberry Piマシンとして最初に実装されたBASICの派生版であるFuze Code System [ 78 ]も提供されています。[ 79 ] [ 80 ]以前は、BASICはファミリーBASIC(ニンテンドーファミコン用)とPSX Chipmunk Basic(初代プレイステーション用)としてコンソールで利用可能でしたが、yabasicはプレイステーション2に、FreeBASICは初代Xboxに移植されました。
BASICの派生版は、テキサス・インスツルメンツ(TI-BASIC)、HP(HP BASIC)、カシオ(Casio BASIC )などが製造するグラフ電卓やその他のプログラム可能な電卓で利用できます。
QBasic は、 EXE ファイルを作成するためのリンカを持たないMicrosoft QuickBASICのバージョンで、 Windows NTおよび DOS- Windows 95のオペレーティングシステムに含まれており、これらが含まれていないWindows 7などのより新しいリリースでも入手できます。DOS 5 より前は、Basic インタープリタはGW-Basicでした。QuickBasic は、Microsoft が家庭やオフィスのパワー ユーザーおよび小規模なプロフェッショナル開発向けに提供している 3 つの言語シリーズの一部です。他の 2 つは QuickC と QuickPascal です。デフォルトでは QBasic がインストールされていないWindows 95および 98 では、インストール ディスクからコピーできます。インストール ディスクには、古いソフトウェアやオプションのソフトウェア用のディレクトリのセットが含まれています。Exe2Bin などの不足しているコマンドも、同じディレクトリにあります。

Microsoft、Lotus、Corel の各種オフィス スイートおよび関連製品は、 VBA 6 と非常によく似たLotusScriptを含め、何らかの形で Visual Basic でプログラミングできます。Host Explorer ターミナル エミュレータは、マクロ言語として WWB を使用します。あるいは、最近では、プログラムおよびそれが含まれるスイートは、Hummingbird Basic として知られる社内 Basic バリアントでプログラミングできます。VBScript バリアントは、Web コンテンツ、Outlook 97、Internet Explorer、および Windows Script Host のプログラミングに使用されます。WSH には、VBScript、JScript、および PerlScript、いくつかの Rexx ベースのエンジン、Python、Ruby、Tcl、Delphi、XLNT、PHP など、インストール可能な多数の独自またはオープンソースのエンジンとともに、デフォルトのエンジンの3番目として Visual Basic for Applications ( VBA ) エンジンもインストールされています。つまり、2 つのバージョンの Basic は、他の言語や LotusScript とともに、WSF ファイル、コンポーネント オブジェクト モデル、およびその他の WSH および VBA 構造で使用できます。 VBScript は、 4DOS、4NT、および Take Command 拡張シェルからアクセスできる言語の 1 つです。SaxBasic と WWB も、Visual Basic の Basic 実装と非常によく似ています。Microsoft Word の Office 97 以前のマクロ言語はWordBASICとして知られています。Excel 4 と 5 は、マクロ言語として Visual Basic 自体を使用しています。1970年代の BASIC に似たインタープリタであるChipmunk Basic は、 Linux、Windows、およびmacOSで利用できます。
パーソナルコンピュータにおけるBASICインタープリタの普及は非常に大きく、かつて教科書には、学生が教室や自宅のコンピュータで数学や計算の概念を実験的に試せるように促す簡単な「BASICで試してみよう」演習が掲載されていた。当時の人気コンピュータ雑誌には、通常、入力式のプログラムが掲載されていた。
未来学者でSF作家のデイビッド・ブリンは、2006年のSalonの記事[ 81 ]で、この時代に初めてコンピュータを使用した他の人々と同様に、広く普及していたBASICの喪失を嘆いた。その結果、この記事はマイクロソフトにSmall Basicの開発とリリースを促し[ 82 ]、Basic-256 [ 83 ] [ 84 ]やWebベースのQuite Basic [ 85 ] といった同様のプロジェクトにも影響を与えた。ダートマス大学は2014年5月1日にBASICの50周年記念式典を開催した[ 86 ]。BASICの教育的利用は、Pascal、Java、特にPythonなどの他の言語にも引き継がれている[ 87 ]。
ダートマス大学は、2014年4月30日にBASIC言語の50周年を記念して一連のイベントを開催した[ 88 ]。このイベントのために短編ドキュメンタリー映画が制作された[ 89 ] 。
LETLETの結果である場合もある)を代入します。ほとんどのBASIC方言では、は省略可能であり、他に識別可能なキーワードがない行では、キーワードはであるとみなされますLET。DATAREADDATA、変数に代入します。内部ポインタは最後に読み取られた要素を追跡しDATA、各操作でそれを1つずつ進めますREAD。ほとんどの方言では、複数の変数をパラメータとして指定できるため、1回の操作で複数の値を読み込むことができます。RESTOREDATAステートメントにリセットし、プログラムがREAD最初の値から実行を開始できるようにします。多くの言語では、オプションで行番号または序数値を指定することで、ポインタを特定の位置にリセットできます。DIMIF ... THEN ... {ELSE}THENが、後のバージョンでは有効なステートメントであれば何でも続くことができました。はELSE、特に初期のバージョンでは広くサポートされていませんでした。FOR ... TO ... {STEP} ... NEXTWHILE ... WENDそしてREPEAT ... UNTILDO ... LOOP {WHILE}または{UNTIL}WHILE、これらのキーワードは主に後期の言語で見られます。GOTOGO TO。GOSUB ... RETURNRETURNに到達すると、コロンの後、または次の行にあるステートメントに戻ります。これはサブルーチンをGOSUB実装するために使用されます。ON ... GOTO/GOSUBDEF FNDEF FND(x) = x*xではなく、可変引数を持つ1つの式であり、プログラムの先頭に記述する構文はFORTRANの関数をモデルにしていた。関数名は当初、FNに1文字を加えたもの、つまりFNA、FNBなどに制限されていた 。LISTPRINTINPUTTABPRINT画面に次の文字が表示される位置、または紙に印刷される位置を設定するために使用されます。ATは別の形式です。SPCTABが、指定された列に移動するのではなく、現在の列から追加のスペース数だけ移動します。REMUSR(「ユーザーによる保守ルーチン」)CALLUSR。関数のような構文を完成させるために人工的なパラメータを必要とせずUSR、メモリ内のさまざまなルーチンを呼び出すための明確な方法を備えています。TRON/ TROFFASMBASICの最小バージョンでは、整数変数と1文字または2文字の変数名しかなく、限られた高価なメモリ(RAM)の要件を最小限に抑えていました。より強力なバージョンでは浮動小数点演算が実装され、変数には6文字以上の名前を付けることができました。初期の実装にはいくつかの問題と制限がありました。たとえば、Applesoft BASICでは変数名を数文字にすることができましたが、最初の2文字だけが意味を持つため、意図せず「LOSS」と「LOAN」という変数を持つプログラムを作成してしまう可能性があり、これらは同じものとして扱われました。「LOAN」に値を代入すると、「LOSS」として意図した値が暗黙のうちに上書きされました。初期のBASICの多くでは、変数にキーワードを使用できませんでした。「SCORE」は「SC」または「E」と解釈され、ORはキーワードでした。多くのマイクロコンピュータ方言では、文字列変数は通常、名前に$サフィックスを付けて記号として区別され、値は「二重引用符」で囲まれて文字列として識別されることがよくあります。 BASICの配列には、整数、浮動小数点数、または文字列型の変数を格納できます。
BASICの一部の言語では、行列と行列演算がサポートされており、連立一次代数方程式を解くために使用できました。これらの言語では、代入、加算、乗算(互換性のある行列型の場合)、行列式の計算といった行列演算が直接サポートされていました。多くのマイクロコンピュータBASICではこのデータ型はサポートされていませんでしたが、行列演算自体は可能でした。ただし、配列要素に対して明示的にプログラムする必要がありました。

家庭用コンピュータでBASICプログラミングを始めたばかりの人は、まず簡単なプログラムから始めるかもしれません。例えば、言語のPRINT文を使って画面にメッセージを表示するようなプログラムです。よく知られ、よく模倣される例として、カーニハンとリッチーの「Hello, World!」プログラムがあります。
10 「Hello, World!」と印刷する20終了無限ループを使用すれば、ディスプレイに次のメッセージを表示させることができます。
10 PRINT "Hello, World!" 20 GOTO 10このENDステートメントはオプションであり、ほとんどのBASIC方言では何も動作しません。この例のように、常に含まれているわけではありません。この同じプログラムは、共通のステートメントを使用して、固定数のメッセージを出力するように変更できますFOR...NEXT。
10 LET N = 10 20 FOR I = 1 TO N 30 PRINT "Hello, World!" 40 NEXT IMSX BASICやGW-BASICなど、ほとんどの家庭用コンピュータのBASICバージョンは、単純なデータ型、ループサイクル、配列をサポートしていました。以下の例はGW-BASIC向けに書かれていますが、最小限の変更でほとんどのBASICバージョンで動作します。
10 INPUT "あなたの名前は何ですか: " ; U$ 20 PRINT "こんにちは " ; U$ 30 INPUT "星は何個欲しいですか: " ; N 40 S$ = "" 50 FOR I = 1 TO N 60 S$ = S$ + "*" 70 NEXT I 80 PRINT S$ 90 INPUT "もっと星が欲しいですか? " ; A$ 100 IF LEN ( A$ ) = 0 THEN GOTO 90 110 A$ = LEFT$ ( A$ , 1 ) 120 IF A$ = "Y" OR A$ = "y" THEN GOTO 30 130 PRINT "さようなら " ; U$ 140 END結果として表示されるダイアログは次のようになるかもしれません。
お名前は?:マイク こんにちは、マイク 星は何個欲しいですか?:7個 ******* もっと星が欲しいですか? はい 星は何個欲しいですか?:3 *** もっと星が欲しいですか?いいえ さようなら、マイク
オリジナルの Dartmouth Basic は、行列キーワード MAT を備えている点で珍しいものでした。[ f ]後期のマイクロプロセッサ派生版のほとんどでは実装されていませんが、1968 年のマニュアル[ 93 ]のこの例では、入力された数値の平均を計算しています。
5 LET S = 0 10 MAT INPUT V 20 LET N = NUM 30 IF N = 0 THEN 99 40 FOR I = 1 TO N 45 LET S = S + V ( I ) 50 NEXT I 60 PRINT S / N 70 GO TO 5 99 END第2世代BASIC(例えば、VAX Basic、SuperBASIC、True BASIC、QuickBASIC、BBC BASIC、Pick BASIC、PowerBASIC、Liberty BASIC、QB64 、そして(おそらく)COMAL)は、主に構造化プログラミングと手続き型プログラミングに関連する多くの機能を言語に導入しました。通常、行番号は言語から省略され、より簡単で柔軟な設計を促進するためにラベル(GOTO用)と手続きに置き換えられています。 [ 46 ]さらに、繰り返し、選択、およびローカル変数を使用した手続きをサポートするキーワードと構造が導入されました。
以下の例は、Microsoft QuickBASIC で記述されています。
REM QuickBASIC の例REM 前方宣言 - メインコードからソースコード内で後から定義されている REM サブルーチンを呼び出すことができますDECLARE SUB PrintSomeStars ( StarCount! )REM メインプログラムが続きますINPUT "あなたの名前は何ですか: " , UserName$ PRINT "こんにちは " ; UserName$ DO INPUT "星は何個欲しいですか: " , NumStars CALL PrintSomeStars ( NumStars ) DO INPUT "もっと星が欲しいですか? " , Answer$ LOOP UNTIL Answer$ <> "" Answer$ = LEFT$ ( Answer$ , 1 ) LOOP WHILE UCASE$ ( Answer$ ) = "Y" PRINT "さようなら " ; UserName$ ENDREM サブルーチン定義SUB PrintSomeStars ( StarCount ) REMこのプロシージャはStars$というローカル変数を使用しますStars$ = STRING$ ( StarCount , "*" ) PRINT Stars$ END SUBVisual Basic、Xojo、Gambas、StarOffice Basic、BlitzMax、PureBasicといった第3世代BASIC方言では、オブジェクト指向およびイベント駆動型プログラミングパラダイムをサポートする機能が導入されました。ほとんどの組み込みプロシージャと関数は、演算子ではなく標準オブジェクトのメソッドとして表現されるようになりました。また、オペレーティングシステムもBASIC言語からより容易にアクセスできるようになりました。
以下の例はVisual Basic .NETで記述されています。
Public Module StarsProgram Private Function Ask ( prompt As String ) As String Console . Write ( prompt ) Return Console . ReadLine () End FunctionPublic Sub Main () Dim userName = Ask ( "あなたの名前は何ですか: " ) Console . WriteLine ( "こんにちは {0}" , userName )Dim answer As StringDim numStars = CInt ( Ask ( "星は何個必要ですか: " )) Dim stars As New String ( "*"c , numStars ) Console . WriteLine ( stars )回答= Ask ( "もっと星が欲しいですか? " )回答が""でないまでループ回答が" Y"で始まる間ループStringComparison . OrdinalIgnoreCase )Console.WriteLine ( "さようなら{0} " , userName ) End Sub End Modulecontinueこの目的のためのものがありましたが、それでも行番号を入力する必要がありました。年代には C コンパイラが広く普及し、C は非常に人気のある言語となった。
Borland Delphi が登場し、Object Pascal と VB のようなビジュアル フォーム ビルダーが組み合わされました。Object Pascal は Borland 独自の言語で、継承を完全にサポートしていました。大文字小文字を区別せず、begin と end を頻繁に入力することに慣れれば (C の波括弧に大まかに相当)、コーディングは VB よりそれほど難しくありません。VB とは異なり、代入 (:=) と比較 (=) に異なる演算子が用意されているのは賢明です。
あるいは、Delphi互換のLazarusでBASIC/Pascalのライバル関係の時代を追体験することもできる。
に頼らずに開発を可能にするとされる他の言語、CellularBASIC (QBASIC に少し似ている) や Hecl (Tcl をベースにしていると思われる) などの言語について聞いたことがあります。
ネットで少し調べたところ、CellularBASIC に関するこのサイトを見つけました。これは JAVA で書かれた完全な BASIC インタープリタです。
-256の着想源となった記事「ジョニーがプログラミングできない理由」をご覧ください。