【コラム】
第15回は、古くから存在する、少々懐かしいプログラミング言語である、BASICを使ってみましょう。BASICは、インタプリタのもとで動作する言語です。BASICのインタプリタにはさまざまな種類が存在しますが、本稿では、「Yabasic」で公開されている、Yabasic(Yet another Basic)を使います。
このYabasicは、BASICのプログラムを、スクリプト言語の形式で記述できるのが特徴です。Yabasic(コマンド名yabasic)が/usr/local/binにインストールされている場合、スクリプトの1行目に「#!/usr/local/bin/yabasic」と書いて、そのファイルに実行属性を付ければ、BASICのプログラムをコマンドとして実行できます。
BASICのHello Worldは、リスト1のように、PRINT文で文字列を画面に表示すればOKです。文字列はダブルクォートで囲みます。ここでは、スクリプトとして実行できるように、1行目にyabasicコマンドのフルパスを指定しています。
Yabasicでは、BASICの行番号は必ずしも必要ありません。また、プログラムは、小文字で記述しても構いません。しかし、ここではBASICの雰囲気を出すために、行番号はすべて付けて、プログラムは大文字で記述しています。プログラムの最後のEND文は省略可能ですが、これも省略せずに記述しています。
Yabasicのスクリプトは、前述のとおりchmodコマンドで実行属性を付ければ、コマンドとして実行することができます(実行例1)。
BASICのPRINT文では、文字列の直後にセミコロン(;)を付けることによって、改行しないで文字列を表示することができます。リスト2は、この動作を試すため、文字列を前半と後半の2回に分けて出力している例です。
BASICでは、DATA文を使って固定データをプログラム中に持つことができます。リスト3は、DATA文で記述した文字列を、READ文で読み込んで表示している例です。文字列型変数は、C$のように、末尾に$を付けた変数名を使います。RESTORE文は、READ文が読み込むDATA文の開始位置を行番号で指定するものです。デフォルトでは、プログラム中に最初に現れるDATA文から読み込まれるため、このプログラムではRESTORE文を省略しても構いませんが、念のため記述しています。
ここで、もう少しプログラムらしくするために、FOR文によるループを使ってみましょう。DATA文で記述する文字列を、1文字ずつの複数の文字列とし、これをFORループでループしながら、1文字ずつ表示するようにしたのがリスト4です。FORループ中のPRINT文では、改行しないようにセミコロンを付け、FORループ終了後に文字列なしのPRINT文で、改行のみを出力します。
FOR文でループ回数を固定にするのではなく、DATA文の中に空文字列が現れたらループを終了するという方式にすることもできます(リスト5)。BASICは構造化言語ではなく、このようなGOTO文を使ったループは今の感覚では抵抗がありますが、ここではなるべくループ構造がわかりやすいように、ループの開始点にダミーのREM文(コメント)を置き、ループ内をインデント(字下げ)するようにしています。
CHR$()という関数を使うと、10進ASCIIコードを1文字に変換できます。たとえば、CHR$(65)は、"A"に変換されます。これを利用して、DATA文として10進ASCIIコードを記述するようにしたのがリスト6です。DATA文に書いてある数値は、"Hello World"の各文字を10進ASCIIコードに変換したものです。
DATA文に10進ASCIIコードを記述するなら、その0の値を終了コードとして利用することができます。さらに、改行の10進ASCIIコードは10なので、この10という値を改行としてDATA文に含めてしまえば、ループ終了後の改行のみのPRINT文は不要になります(リスト7)。
さらに、ループ1回につき1文字ずつPRINT文を実行するのではなく、各文字を文字列型変数に蓄えておき、ループを抜けてからまとめて1回だけPRINT文を実行するようにしたのがリスト8です。
| 理研、脳・脊髄形成に必要な神経板湾曲の仕組みを解明 [20:16 5/25] |
| 京大、「慢性閉塞性肺疾患」患者の労作時呼吸困難は鍼治療が有効と実証 [20:08 5/25] |
| 120Hz SHVカメラ用イメージセンサーを使った撮像装置 - SHVフルスペック化へ [18:10 5/25] |
| 京大、視覚による物体認知は前頭前野からのトップダウン信号が重要と確認 [17:45 5/25] |
| 製品数の拡大だけでなくBCPの展開なども含めた総合力で事業の強化を図るTI [17:25 5/25] |
|
【連載】これだけは要チェック! TOEIC(R)単語帳 第108回 今回のお題は…「issue」 [20:00 5/27] キャリア |
|
TVアニメ『ペルソナ4』、新規カットを加えた再編集版を劇場でイベント上映 [20:00 5/27] ホビー |
|
[9nine]制服姿見納め? セーラー服で登場も川島海荷「4人はコスプレ」 [19:15 5/27] エンタメ |
|
「NO.6」4巻は書き下ろしドラマCD付、木乃のサイン会も [18:49 5/27] ホビー |
|
[今週の新刊]マンガ大賞3回ノミネート「アイアムアヒーロー」 カープ愛「球場ラヴァーズ」も [18:33 5/27] ホビー |
4つの診断で、自分の適性を見つめなおそう!
働くこと・挑戦し続けることへの思いを綴ったインタビュー
あなたにピッタリのアドバイスを読むことができます。
転職に必要な情報が収集できます
企業からアプローチのメッセージが届きます。