2 コンピュータープログラムの歴史

2.1 なぜプログラムが必要か?

所詮、コンピューターはプログラムの通りに動作する自動計算機に過ぎません。 もし、プログラムが無かったらどうなるでしょうか?。コンピューターは、全 く動作せず、何もできません。いかに、すばらしいハードウェアーがあっても、 プログラムが無いと、それはただの箱です。

プログラムの無い計算機といえば、電卓を使うことを思い浮かべるでしょう。 電卓のみを用いて、例えば連立方程式を計算する場合を想像しましょう。この 場合、人間の頭にその解法があり、それに従い手を動かして計算しています。 この場合、プログラムに相当しているものが、頭の中にあり、指を通して、ハー ドウェアーである計算機に指示を与えています。

では、いったいプログラムとは何でしょうか?。一言で言うと、それはコンピュー ターに指示を与えるものといえます。その特徴は、

機械相手ですから、仕方ないことです。

2.2 プログラム方法の変遷

未完に終わりましたが、最初にコンピューターを考えたと言われるのが、イギ リスのチャールズ・バベッジ(Charles Babbage, 1791-1871)です。当時、イギ リスは産業革命で、大量の織物が作られていました。それは、ジャカールが発 明した自動織機で作られていました。織物の柄はパンチカードに書かれており、 それに従い機械が自動的に織物を作っていたようです。バベッジはそれを利用 して、自動計算機を作ろうと考えたようです。

最初に稼動した電子計算機は、アメリカのENIACです。それは、プログラムボー ド呼ばれる配線板上の配線を組み替える方法で、プログラムが書かれました。 これは、ハードウェアーそのものを変えることにより、プログラムしているこ とになります。要するにコンピューターの動作を配線で示したわけです。

もう少し進化すると、メモリーにプログラムを書くようになりました。0と1を 全てメモリー上にスイッチで指定するようなことが行われていました。コン ピューターの動作を0と1で示しています。これこそ、機械語です。今もそうで すが、コンピューターは0と1でできた機械語しか分かりません。それをそのま ま指定していたわけです。例えば、足し算をするときは、

	0010 0000 0001 0000 0000 0000 0000 1010
と書きます。これは、メモリーの内容そのもので、これに従いCPUの線の電圧 が0や1になります。それに従い、論理回路が動作しました。

さすがに0と1を並べただけのプログラムは、分かりにくく、専門的なプログラ マーにしかプログラムはできませんでした。これをもう少し、分かりやすくし たのがアセンブラ言語です。先ほどの加算のプログラムを

	ADDA   GR1,ADDRESS
と書きます。ADDというのは加算するという英語です。その後のAはきにしない でください。これは、GR1とADDRESSを加算しなさいという命令です。詳細は後 ほど学習しますが、先ほどの0と1が並んだプログラムよりは格段に分かりやす くなりました。これは、 に対応しています。要するに、人間がわかりやすいアセンブラ言語は、機械が 唯一理解できる機械語と1対1に対応しています。このようにすることで、プロ グラムは格段に容易になりました。

ただし、アセンブラ言語を機械語に翻訳する仕事は必要です。このアセンブラ 言語から機械語への翻訳をアセンブルするといいます。このアセンブルの作業 は、コンピューターに任せればかってにやってくれます。そのためのソフトウェ アーをアセンブラーといいます。

アセンブラーが開発されたことで、プログラムはかなり容易になりましたが、 それでもまだ、一部の専門家にしか使えません。もっと、人間に近いプログラ ミング言語が必要です。そこで、1950年代初頭にFORTRAN言語の登場となるわ けです。これは、皆さんが学習した通り、誰でもコンピュータープログラムが できます。これは、非常に人間の言葉に近く、加算は、

	C=A+B
と書けばよいです。これは、人間にとって非常に分かりやすい表現です。しか し、コンピューターにとっては全く分からない表現になってしまいました。そ のために、このFORTRAN言語で書かれたプログラムを機械語に翻訳する必要が あります。翻訳は、コンピューターに任せればよく、そのためのプログラムが 用意されています。それは、コンパイラーと言われるプログラムです。皆さん は、FORTRANコンパイラーを使ったことがあるでしょう。あるいは、C言語のコ ンパイラーを使ったことがある人がいるかもしれません。

コンピューターのプログラム言語は、誰でもが間単にプログラムできるよう に開発されてきました。



ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成16年9月7日


no counter