0-1-1:プログラミングとは?


・ 「プログラムを作る」と聞くと、 何か難しい特別な作業のような印象を受けるかもしれません。 しかし、やっていることは実はとても単純です。 人間からコンピュータに対して命令を出し、思ったとおりに操作するのが目的です。 ちょうど犬に芸をさせたり、 リモコンでビデオデッキの予約をセットするのと原理的には変わりはないのです。

command.gif

・ ではコンピュータに命令を与えるには、具体的にどうすればいいのでしょうか? コンピュータが行う仕事は CPU(中央処理装置)と呼ばれる部分によって実行されます。 CPUの行う処理は足し算や掛け算などに近い単純な計算にすぎません。 ただし、その計算を人間の数百万倍、あるいは数億倍のスピードで行うことができます。 人間と違ってコンピュータは疲れたり飽きてしまったりはしません。 大量な単純作業を正確に実行してくれます。
このように人間とコンピュータのCPUとでは、 時間の感覚があまりにかけ離れています。 人間が CPUの処理を1個ずつチェックしながら仕事を進めるのは不可能です。 (もしそのような方法を取るのならば、CPUに計算させる意味がほとんどありません。) そこで、CPUに仕事をさせる場合には、あらかじめ行うべき仕事の「スケジュール表」 に当たるものが必要となります。 これが「プログラム」です。 日常の世界のでは、たとえば音楽会などの「プログラム」というように使いますが、 「進行の順番を記述する」という意味は共通しています。
人間によって用意された コンピュータのためのプログラムは、処理される時にはコンピュータの 「メモリ」と呼ばれる部分に記憶されます。 このことを「プログラムをメモリ上にロードする」と言います。 CPUはメモリに高速でアクセスすることができるので、時間の無駄なく処理が進みます。

load.gif

・ このような仕組みを理解しておくと、プログラムを作る上で何が難しいのか わかってくるはずです。 プログラムでは多数の命令をあらかじめ用意しておかねばならず、 プログラムがいったん開始されてしまった後では修正がききません。 コンピュータが人間の思ったとおりに動いてくれるかどうか、 正しく予測しておかねばなりません。 たった1個のミスで、コンピュータがまったく意図していたこととは 違う方向に進んでしまうこともあり得ます。
もしプログラマが CPUが行っている計算の1個1個までチェックしなければ ならないとしたら、その負担は膨大なものになってしまいます。 幸い、プログラミングの技術やプログラミング言語の進歩によって、 そうした負担は最小限で正しく動作するプログラムを開発できるようになっています。 その詳細については、Javaの歴史と併せてあらためて解説することになるでしょう。

control.gif