BASIC
だが大学ではBASICの使用は構造化BASICも含めて減っていった。大学では、構造化言語の中でも、特定メーカーに依存せずプラットフォームを超えて使え、方言が乱立しなかったC言語を教えることが一般化した。また、特定のOSやCPUアーキテクチャに依存せず、無料で使えるJavaなどの洗練された後発言語の普及により、BASICは開発環境としては選択肢のひとつでしかなくなっていった。
なお、コンパイラで開発した場合、実行ファイルとは別に、巨大なランタイムライブラリが必要となる処理系が多い。このため配布に必要なファイルのサイズが大きくなり、敬遠されることもある。
もともとVB.NETは姉妹言語のC#やF#と比べて、新しい言語機能のサポートが遅れる傾向にあったが、マイクロソフトは2023年2月、VB.NETには今後新しい言語構文を追加せず、安定性に重きを置く方針であることを発表した。
1970年代 - 1980年代のコンピュータ(マイクロコンピュータやパソコン)で初心者向け・教育用のプログラミング言語として、非常に広く使われたものである。行番号とGOTO文(大域ジャンプ)を用いる原始的なBASICであり、分岐やループでは常にジャンプ先の行番号を意識しなければならず、構造化プログラミングが不可能である。行番号とGOTOを用いたプログラミングは、まるでスパゲティが絡み合ったような複雑なコード(スパゲティプログラム)となりがちで、コードの再利用性が低いうえにバグを誘発しやすく、熟練したプログラマにとってもプログラムのデバッグや安全な機能拡張は困難だった。のちに構造化プログラミングに対応したPascalやC言語が登場・普及して比較されるようになると、BASICは激しい批判を浴びるようになり、実用的なプログラミング用途ではC言語などに負けて廃れていった。
BASICのエッセンスを説明し簡単なプログラム例を示すために、BASICのステートメントとコマンドについて説明する。 本来のBASIC、ダートマスBASICではステートメントとコマンドを明確に区別する。ダートマスBASICのルールを説明する。
行番号を持ち、プログラム本文の中に書かれるコード行はステートメント(文、statement)と呼ぶ。
たとえば次のようなキーワード(予約語)から始まるものがステートメントである。
PRINT - 出力(印字)する。たとえば「PRINT A」と書くと、変数 A の値を画面などに出力する。
FORとNEXT - 両者を前後に組み合わせて使うことで、FORの文からNEXTの文までがループ(繰り返し処理)となる。
GOTO - 「GOTO <行番号>」という書式で、指定された行番号へジャンプする。
GOSUBおよびRETURN - 「GOSUB + <行番号>」という書式。GOSUB文で指定された行番号へジャンプするが、ジャンプ先で行番号の順に実行していき、RETURNというワードに到達するとジャンプ元の位置に戻る。
END - ダートマスBASICではプログラムの最終行に書かなければいけない。(実装によってはENDを書かないとコンピュータが暴走するものもあった。ENDを省略できる実装が次第に増えた。)
処理系に指示を与えるワード(プログラムの外の命令)はコマンド(命令、command)と呼ぶ。
たとえば次のようなワードである。
RUN - プログラムを実行する。
LIST - プログラムを行番号の小さいほうから順に、リスト状に画面に表示する。
SAVE - 現在のプログラムをストレージに保存する。