前回の話
前回は、人とチンパンジーの違いからDNAについて考えた話でした。
ここで取り上げた人とチンパンジーの違いは、両者の遺伝子の異なっている数よりも、脳の異なっている箇所の数の方が多いという点でした。
これをプログラムとして考えると、遺伝子をサブルーチンまたは関数だとすると、それを呼び出しているプログラム側が違っていると考えられるという話でした。
ところで、その話の基となった番組では、人とチンパンジーの違いについてもう一つの話が有ったのですが、それもまたDNAの内容をプログラムと考えたくなるものだったので、今回はその話です。
もう一つの人とチンパンジーの違い
さて、そのもう一つの違いですが、それはDNAの内の遺伝子以外のこれまでガラクタと呼ばれた部分についてになります。
チンパンジーのDNAには、機能的に見て意味の無い繰り返しが続いている部分が有るようなのです。
特に、端の部分に有るという事でした。
ところが、この部分が人では無くなっているのです。
その違いが、人とチンパンジーの違いを生み出しているのかもしれないという話でした。
機械語というプログラム
ここで、DNAの内容に似ていると考えている、コンピューターのプログラムについて少し書きたいと思います。
現在ではコンピューターのプログラムと言えば、「C言語」とか「Python」とかいういわゆる高級なプログラミング言語を使って作るのが当たり前になっています。
もっとも、そのプログラミング言語で記述したプログラムは、そのままコンピューターで実行出来るわけでは無く、実行可能な形にする必要が有ります。
それが、「機械語」とか「マシン語」と呼ばれている形式になります。(厳密な事を言うと、コンパイラとインタープリタで少し違うとか有るのですが、今回はあまり細かい事は関係なので気にしないことにします。)
さらに昨今では、コンピューターのメモリ量、性能や、プログラミング用のソフトがほとんど無料で提供されているといった事も有って、プログラミング言語を使う事が当たり前になっているわけです。
手書きで作っていた
しかしその昔には、これらの物が普通では無い時代が有りました。
その頃には、「機械語」によるプログラムを直接、紙に手書きで作っていたのです。
そんな開発環境で、プログラムの途中を変更することは一大事でした。
何しろ変更した部分以降を全てずらさなければいけないのですから。
その為、その作業を少しでも軽減するためのテクニックが有りました。
それは、あらかじめプログラムの中に変更用のプログラムを入れるための空き部分を作っておくというものでした。
変更の規模は前もって分かりませんので、多くの場合それはプログラムの最後に作られました。
具体的には、コンピューターが実行しても何も起こらない「機械語」を繰り返しておきます。(多くの場合00を並べておきます)
変更が必要になった時に、この部分にプログラムを追加し、変更部分から呼び出すようにする訳です。
ここまで書けば
ここまで書けば、もう言わんとすることはお判りでしょう。
この「機械語」のプログラムの追加方法は、上で書いた人とチンパンジーのDNAの違いの話と同じに見えると思うのですが。
DNAに有った使われていない部分に、人になるための変更が追加されたという事のように見えます。
しかも、最初から用意されていたかのように、端の部分を使ってです。
「機械語」では、計画的に変更用の部分を用意していた訳ですが、DNAはたまたまそう進化したんですかね。
謎ですが興味深い。
ではでは