2014年3月16日日曜日
人で無しのための計算機理論入門 その3 プログラムとOS
さて、おそらく絶賛大不評中であろうこの人で無しのための計算機理論入門、今回で、ごく初心者のための入門記事は終わりとなります。これだけわかっていれば、おそらくこの情報化社会のごく基本的な部分が魔法で動いているのではないということがわかっていただけるでしょう。ちなみに、某半導体工場で働いているときにエンジニアの女の子が半導体にあれだけ微細な加工をして動いているわけがない、ということを言っていたのでひっくり返りそうになった覚えがあります。では、なぜ、どうやって動いていると言うんでしょうかね。全く、技術者のくせにどういう教育を受けてきたんだと思いましたが。
それはそうとして、これだけわかっていただければ、アルゴリズムというものもウィキペディアそのほかネットの資料を読めばわかるようになるでしょう。これまでは、私にしては速いペースで記事を上げてきましたが、これからは、ごく不定期で書きたいと思います。いろんなことでこれでも忙しいのです。
その2までを読んでいただいたかたならおわかりと思いますが、計算機というのは、本当に単純なことしかできません。
そのため、ごく初期の頃は人間の方が計算機にあわせる必要がありました。プログラムというのは、そういう計算機に処理をさせる手順を書いたものですが、ただ足し算をするのにも、いちいち、レジスタAにメモリの何番地のデータを入れて、レジスタBには別のメモリの番地からデータを読み込んできて、レジスタAとレジスタBの内容を加えてレジスタAに入れるような命令を書き入れるというような、非常に面倒で手間のかかることをやっていました。
しかし、そのうち、効率よくプログラムを書くために、もう少し人間の方にわかりやすいプログラムを書くための方法が考え始められます。
まず、共通のプログラムを使いたいという欲求が沸いてきますよね。いちいち足し算をするにも、メモリの何番地があいているからそこにデータを入れて、そこから、どのレジスタにデータを読み込むのか、などという管理までちまちまとやっていられない。
そこで、そういうことを自動で行うプログラム、つまり、人間にわかりやすいプログラムを書くためのプログラムを作ろうという動きが出てきました。これが高級言語と一般に言われているものです。
現在よく使われている高級言語には、C/C++やJavaなどのグループがオブジェクト指向型言語と分類されもっとも普及しています。他にインターネットのホームページで使われるHTMLというのもプログラム言語です。細かい用途によって様々なプログラム言語があります。
さて、いろんなプログラムが書かれるようになりましたが、それは、ハードウエアの仕様により、様々に細かいところが異なってくる場合がありました。例えば、同じ種類のCPUを使っていても、内部メモリの大きさが違えば、処理できるプログラムは微妙に違います。そのような管理をいちいちプログラムでするのは面倒ですよね。
そこで、ハードウエアの差異を吸収して、人間に同じような操作性を提供するプログラムが必要だと考えられるようになりました。それが、オペレーティングシステム(以下OSと呼ぶ)です。
パソコンならWindows、スマートフォンやタブレットPCならば、iOSやAndroidが有名ですよね。このようなOSがあるからこそ、メーカー毎、あるいは発売された時期ごとに異なるハードウエアの細かい仕様の違いをユーザー側はあまり意識せずにスマホも使用することができ、また開発者側の負担も大幅に減らすことができるわけです。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿