コンピュータのプログラムとは何か?(1) 〜 プログラミング入門一歩前
プログラミング入門者向けの本やサイトではコンピュータのプログラムは様々な物事に例えられます。
運動会のプログラム、料理のレシピ、お使いメモ…。
でも本当のところコンピュータのプログラムとはいったい何なのでしょうか?
Wikipediaにはこうあります。
コンピュータプログラム(英:computer program)とは、コンピュータに対する命令(処理)を記述したものである。プログラム内蔵方式のコンピュータのCPUには、CPUで実行するプログラムの命令が必要である。
引用元:https://ja.wikipedia.org/wiki/プログラム_(コンピュータ)
このとおりなのです。
ですが、今回、本当のことに迫りたいのは、”命令を受けるコンピュータ側からみたらプログラムとはいったい何なのか?”という事です。コンピュータが人間の命令を"理解"しているはずはないですよね?
では、少しずつ進めていきましょう。
そもそもコンピュータとは
コンピュータとは「電子計算機」と訳されるように電子の力で計算する機械のことです。
コンピュータ = 電子計算機 = 電子の力 + 計算 + 機械
つまり、コンピュータは計算する機械の一種です。
この電子の力を使うというところもミソですが、まずは、”計算する機械”とは何かを掘り下げましょう。
計算機とは
計算する機械というのは、身近なものでは算盤や電卓があります。古くは家計簿をつけたり、お会計をしたりする際に使いました。数値を足したり、ひいたり、かけたり、割ったり。頭の中で暗算するよりも上手くやってくれます。
計算機は数値とその計算式を与えると答えを教えてくれます。
数値 や 式 → 計算機 → 答え
(1, 2,...) (+,...) (3,...)
え?じゃあ電子の力で計算する機械という意味ならコンピュータと電卓は同じじゃない!
となりますが、たしかにその通り。電卓も電池など電子の力で動くわけですし、名前も電子”卓上”計算機ですから、小型の電子計算機といったところです。
ただし、電卓は仲間ではありますが、コンピュータよりその機能=できることや目的が限定的です。
電卓の場合は限定された"計算"しかできないのです。
計算とは
計算が限定的?そもそも ”計算”なんて足したり引いたりかけたり割ったりするだけでしょ!?
違います。コンピュータが行う”計算”は電卓が行う”計算”とはレベルが違います。限定が解除されているのです。
え、もっと複雑な計算ができるの?
逆なんです。もっと単純で簡単な計算しかできないのです。しかし、単純で簡単な計算しかできないからこそ、それらを”組み合わせる”ことで電卓が行う計算以上の事をやってのけることができるのです。
電卓の計算 → 四則演算
コンピュータの計算 →(四則演算より)単純な計算 + 単純な計算 + …の組合せ
え?足したり引いたりするより単純な計算っていうのもわからないけど、何でそれらを”組み合わせる”ことでもっとすごい計算ができるの?
はい。四則演算も含み、さらにもっと自由でバリエーションな”計算”ができるようになります。
たとえば住まい作りを考えます。
伐採した木をほとんどそのまま組み合わせて作るログハウスはかっこいいですが、かなり遠くから見てもだいたい「あそこにログハウスがあるなあ」と気づくことができるくらい決まりきった形があります。
そこで、木をそのままつかうのではなく、手頃なサイズに加工して”木材”にすればもっとバリエーションにとんだ形の建物ができます。2×4などの建売住宅はそうですね。
さらに木材を積み木サイズまで小さくすれば(耐久性は別として)モザイクアートのようにもっとディティールの細かい細工を施した建物もできるでしょう。
さらにまた、木を細胞レベルで扱うことができれば、おそろしく精密な建造物、あるいは生命体まで作れてしまうかもしれません…。
このように単純なモノを組み合わせたほうがもっと自由にバリエーション豊かなものを作ることができることもあります。
ちょっと頭がこんがらがってきたところで、続きは次回にしましょう。
次回は、
・単純な計算とは
・計算を組み合わせる = 計算式 → コンピュータプログラムの本来の目的
・プログラム = プロ + グラム = 前もって + 書く
・計算式を前もって書くためには
→ 全て計算 + 選択
・選択する → スイッチ → 電子の力
となる予定です。一部変更はあるかもしれません。
令和2年12月7日 すこし寒さが落ち着いているこのあたりの夜に
更新履歴
2020.12.11 序文加筆
次は、
この記事が気に入ったらサポートをしてみませんか?