プログラミング言語の一つ。直訳すると「初心者用万能記号命令規約」で、英語で基本を意味するbasicとの語呂合わせと考えられる。
初期の8ビットパソコン用Microsoft版BASICでは、行番号があり、頭から順番に動作する、シンプルな手続き型言語であった。
エディタ機能を持ったBASICインタープリター上で動作し、入力されたプログラムはその場で中間言語にコンパイルされる。RUN命令でプログラムを実行すると、この中間言語がメモリーから読み取られ実行される。
インタープリターではあるが、入力時に中間言語になるため、実行しながらの処理が軽減され、もって8ビットCPUという低性能なプロセッサでも実用的な速度で稼働した。
やがてBASICも、構造化プログラミングの潮流に乗ることになる。
当初は行番号があるままで構造化BASICが作られたが、後に行番号のないものも作られた。
Microsoftからは、まずMS-DOS用としてQuick Basicが製品化された。
行番号は不要な、構造化BASICである。
例えばIF文は、IF〜THEN〜END IFという構造で記述できる。
サブルーチンはSUB 名称 (引数)〜END SUBという構造で記述でき、CALL命令で呼び出せる。
Windows用として、Microsoftが作った構造化BASICがVisual Basicである。
イベントドリブン(イベント駆動型)を採用し、かつオブジェクト指向プログラミング言語となった。昔ながらの雰囲気は残しているが、8ビット時代のBASICとは別の言語ともいえる。
構造化の基本的なスタイルはQuick Basicとほぼ同じ。従来のサブルーチンはプロシージャと呼ばれるようになる(但し言語仕様のSubはそのまま)。
イベントドリブンに対応するため、プロシージャ名_イベント名、というスタイルでのプロシージャ、通称イベントプロシージャが登場した。例えば、コマンドボタン1がCmd1なら、そのクリックイベントはPrivate Sub Cmd1_Click()〜End Sub、といったプロシージャ構造になる。
オブジェクト操作は、オブジェクト名.プロパティで操作する。フォームやダイアログ、ボタン等オブジェクトのキャプションを変える時は、例えばForm1.Caption="hogehoge"、のようにする。