プログラマyasuhoの隠れ家

某ソフトウェア企業に勤務するおじさんプログラマyasuhoです

プログラミングの楽しさとは、再び(中編)


前編では私がプログラミングにふれたきっかけを書きました。今回はプログラミングの何が楽しかったかについて話してみたいと思います。

プログラムの正体


最初にBASICのリストを見た時、それがどのように働くものなのか、おぼろげながら見えてきました。それはプログラムは上から順番にコンピュータへの指示を実行していくものであるということです。もう内容はすっかり忘れてしまったのですが、たぶんこんな感じで書かれていたと思います。

100 REM センスイカンゲーム
110 REM ショキセッテイ
120 NS=3:SC=0
130 SX=0:SY=0
140 EX=INT(RND*40):EY=INT(RND*40)
190 PRINT "スコア: ";SC
200 REM メインショリ
210 D=ABS(SX-EX)+ABS(SY-EY)
220 PRINT "テキ センスイカン マデ ノ キョリ: ";D
230 INPUT "コマンド (M:イドウ , F:ファイア) ?";CM$
240 IF CM$="M" GOTO 1000
250 IF CM$="F" GOTO 2000
260 PRINT "":GOTO 200
<...>


初めて見たBASICのプログラムは上から順番に番号が振られていたので、これは上から順番に実行されていくものだと思いました。PRINTやINPUTは文字からその内容が推測できます。流れを変えたい場合はIFとGOTOを使うのか。


それまでプログラムというものはとても難しいものだと思い込んでいました。ゲームを見ると敵やプレイヤーなどを一度に多く動かしている。ましてや私は数学が得意じゃない。プログラムを作るなんて、私が出来るようなものではないと思い込んでいたのです。


しかし、実際のプログラムは単純な命令を素直に実行することで実現されているらしい。一見複雑に見えるインベーダーゲームでも、キャラクタやミサイルを書いたり消したりということを地道にやっていることをAから聞きました。「これなら自分でもできそうだな」そう思うと同時に、自分が作ったプログラムをコンピュータで動かしてみたい。そう考えるようになっていったのです。

プログラミングに興味を持った理由


それから私は友人と一緒にマイコンショップに通うと共に、他のマイコンショップも覗いてみるようになりました。当時はのどかな時代だったので、Bit-INNのような解放されたスペース以外のショップでもマイコンが自由に使えました。とあるショップではPC-8001とBASICマニュアルが置いてあったので、マニュアルを見ながら命令がどんなふうに動くのか、何時間も試していたことがあります。そんな時でもお店の人は何も言いません。あの時は本当にありがとうございました。


コンピュータ関連の本もだいぶ読みました(ほとんど立ち読みでしたが)そのおかげでいろいろなことが分かってきます。コンピュータはCPU・メモリ・I/O装置などから構成されていること。CPUが直接実行できるのは機械語と呼ばれる言語だけで、BASICも機械語から作られるプログラムの一つであること。コンピュータへの理解が進むたびに、それを制御するプログラムを書きたいと思う気持ちも強くなっていきました。


最初にプログラムを書きたいと思った気持ちはコンピュータを自分の意のままに動かしてみたいという征服欲のようなものだったのだと思います。当時はまだOSというものもなく、プログラムが全てを制御できましたから。でも、プログラミングを本当に好きになった理由は別にあったのです。

さらに続きます


すいません。また長くなってしまいましたので、続きは次回で。


次こそは最後です。たぶん・・・