プログラムの無い計算機といえば,電卓を使うことを思い浮かべるであろう. 電卓のみを用いて,例えば連立方程式を計算する場合を想像してみよう.この 場合,人間の頭にその解法があり,それに従い手を動かして計算をすることになる. この場合,プログラムに相当しているものが,頭の中にあり,指を通して,ハー ドウェアーである計算機に指示を与えてることになる.
では,いったいプログラムとは何だろうか?.一言で言うと,それはコンピュー ターに指示を与えるものである.その特徴は,
最初に稼動した電子計算機は,アメリカの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が並んだプログラムよりは格段に分かりやす い.これは,
ただし,アセンブラ言語を機械語に翻訳する仕事が必要になる.このアセンブラ 言語から機械語への翻訳をアセンブルすると言う.このアセンブルの作業 は,コンピューターに任せればかってにやってくれる.そのためのソフトウェ アーをアセンブラーと言う.
アセンブラーが開発されたことで,プログラムはかなり容易になったが, それでもまだ,一部の専門家にしか使えない.もっと,人間に近いプログラ ミング言語の必要性が叫ばれた.そこで,1950年代初頭,最古の高級言語であるFORTRANが登場した.諸君が学習した通り,誰でもコンピューターのプログラムが書けるようになったのである.例えば,加算は,
C=A+Bと書けばよい.人間にとって非常に分かりやすい表現である.しか し,コンピューターにとっては全く分からない表現になってしまった.そ のために,このFORTRAN言語で書かれたプログラムを機械語に翻訳する必要が ある.翻訳は,コンピューターに任せればよく,そのためのプログラムが 用意されている.それは,コンパイラーと言われるプログラムである.皆さん は,FORTRANコンパイラーを使ったことがある.C言語のコ ンパイラーを使ったことがある人もいるであろう.
コンピューターのプログラム言語は,誰でもが間単にプログラムできるよう
に進化してきた.その進化は今でも留まっておらず,いろいろな言語が開発されている.