How to spend the terminal

技術ブログでさえない

初心者向けプログラミング言語 BASIC

この記事はSLP KBIT Advent Calendar 2014 - Adventarの9日目の記事です。



はじめに

初心者向けプログラミング言語としてBASICを紹介します。
古すぎ?現代の初心者に教えるべきでない?いやいや初心者向けであることには変わらない。

BASICとは

BASICとは

Beginner's
All-purpose
Symbolic
Instruction
Code

の略で、初心者向け汎用記号命令コードという意味です。
オリジナルはコンパイラですが、多く出回っているのはインタプリタです。
今年で生まれてから50年です。
センター試験数学IIの選択問題で出てきます。(コンピュータと計算)
僕は数列が苦手だったのでやりました。(結果は聞かないで)
BASICについて詳しく知りたい方は
http://ja.wikipedia.org/wiki/BASIC
を見て下さい。

僕とBASICの出会い

僕とBASICが初めて出会ったのは2013年、ハードオフポケコン「PC-G850VS」を購入した時です。
触って少ししてパソコンでC言語を勉強し始めました。
なのでそこまでBASICに慣れていないです。
f:id:moxtsuan:20141105211455j:plain

プログラムを見てみよう

BASICプログラムを見たことのない人が多いような気がするのでプログラムを書いてみます。
ちなみに実行する時は

RUN

を入力します。

代入とか

10 LET A=10
20 LET B=12.3
30 LET S$="HELLO"
35 REM 出力
40 PRINT A
50 PRINT B
60 PRINT S$
70 END

結果

10
12.3
HELLO

LETは代入します。
変数には数値型と文字列型があります。
変数名の最後に$がついているのは文字列型です。
数値型には整数と実数が入ります。
REMはコメント(行末)です。
PRINTは出力です。

PRINT "hello world"

というように文字列を出力できますし

PRINT A/B

というように計算結果も出力できます。
ENDはプログラムの終わりを表しています。

入力して出力するプログラム

10 INPUT A
20 PRINT A
30 END

INPUTは入力です。

INPUT PROMPT "文字列":A

とすると文字列を出力してから入力を求める...らしいです。
PC-G850VSではエラーになります。

条件による分岐

条件による分岐を行いたいときはIF文を使います。

IF 条件式1 THEN 命令1
ELSE IF 条件式2 THEN 命令2
ELSE 命令3

まず条件式1を評価して真(その通り)であれば命令1を行います。
偽(そうでない)であれば条件式2を評価して真であれば命令2を行い、
偽であれば命令3を行います。

C言語と違うのは条件式でA==10の場合A=10と書き、
A!=10の場合A<>10と書きます。


繰り返し

繰り返しの命令がしたい時はこのようにします。

10 FOR I=0 TO 5
20 PRINT I
30 NEXT
40 END

結果

0
1
2
3
4
5

FORは繰り返すことができます。

FOR I=A TO B STEP C
NEXT

まずIにAを代入し、NEXTまで進むとCだけ足して(何も書かないと1だけ)
Bになるまで繰り返します。
処理系によってはWHILE~WENDもあります。
使い方は割愛します。

配列

配列は

10 DIM A(5)

というふうに宣言できます。
C言語風に書くと

int A[5]

です。
使い方は割愛します。

GOTO is God

GOTOは指定された行番号にジャンプします。
アセンブラ言語のJMPのようなものです。

10 PRINT "GOTO is God"
20 GOTO 10
30 END

このコードは永遠に"GOTO is God"を出力し続けます。


GOTO is God

ちなみにGOTO教はBASICなど一部の言語以外では迫害されるのでカミングアウトしないほうがいいです。

その他

その他いろんな命令があります。
C言語の関数のように扱えるGOSUB、出力する場所を変えるLOCATEなどがあります。

BASICを使うには

ここまで読んでBASICを使いたくなった物好きな方は以下のものをおすすめします。
・99 BASIC(Windows)
使いやすい(らしい)BASIC。
・(仮称)十進BASIC(WindowsLinuxMac OS)
センター試験に近い(らしい)BASIC。
・Chipmunk Basic(Mac OSWindowsLinux)
元々はMac OS用に開発されたフリーウェア。
オブジェクト指向プログラミングが可能。
プチコン(ニンテンドーDSiニンテンドー3DS)
ゲーム機で出来るBASIC。

VisualBasicとSmallBasicとActiceBasicはもはや別物だと思う...

おすすめサイト

BASICを学びたいなら以下のサイトがおすすめです。
・ドットインストール BASIC入門
http://dotinstall.com/lessons/basic_basic
なぜある!


最後に

工業高校ではBASIC、商業高校ではCOBOL(今年で55年)というように50年ものの古代言語はひっそりと生きてきました(LISP?いやいやそんな最新鋭を行く言語は)。
しかしBASICを学ぶ環境であるPC-G850VSは昨年度で生産完了しました。
もう若い人は学ばないのかもしれません(プチコンあるから学ぶ人もいると思うけど)。
僕はBASICという言語を知っているので布教しなければいけません。
こんな言語学ばないほうがいいと思うよ!
スパゲティコード書いちゃうようになっちゃうし。
というわけでBASICのお話でした。