この記事は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に慣れていないです。
プログラムを見てみよう
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(Windows・Linux・Mac OS)
センター試験に近い(らしい)BASIC。
・Chipmunk Basic(Mac OS・Windows・Linux)
元々は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のお話でした。