付録A初心者プログラマのためのハードウェア、ソフトウェア入門

 ものごとには直観的にわかるものがある。その中には、自然に見られるものもあれば、車輪やピザのように人間が発明したものもある。

 一方、直観的にわからず、ただ信じるしかないものもある。たとえば、テレビは空中でくねくねしながら飛んでくる見えないものをどのようにして音声と動画に変換するのだろうか。

 コンピュータも、簡単に納得できないものの1つである。キーボードを叩いたらマシンが望みどおりのことをするのはどういう仕組みなのか。

 まだプログラミングの勉強をしていた頃、私には答えの見つからないごく初歩的な疑問があった。たとえば、一部の本では、コンピュータのメモリを図書館の書棚の本というたとえ話で説明する。このたとえ話通りであれば、図書館から本を取り出せば、本は一時的になくなるわけで、メモリから読み出しをすればその部分はメモリから消えてしまうのではないだろうか。しかし、実際に行うのは、本を持っていくのではなく、本のコピーを持っていくようなことだ。

 この付録では、プログラミングを始めたばかりの人々のために、コンピュータのハードウェアとソフトウェアのことを簡単に説明したいと思う。さまざまなことが最終的には「当たり前」のことになるように説明したいと思うが、最初はひっかかるところがあるかもしれない。

A.1 ハードウェア

A.1.1 原始人のコンピュータ

 原始時代、狩りから返ってきたオグとソグは、殺したマンモスの肉を積み上げた山に新たな肉の塊を加えることになるだろう。しかし、片方がもう片方よりも目立って大きいときに自慢できるという以外、その肉の山についてできることはない。

 オグから何世代も経た子孫は、数を数え、数字を書き、そろばんを使えるかもしれない(ソグはある日肉の山を大きくしようとして、逆にマンモスに踏み潰されて子孫を残していない)。しかし、これらの道具を使っている状態を乗り越えてコンピュータの概念を生み出すためには、想像力とテクノロジの飛躍が必要だ。まず最初に必要なテクノロジは電気である。 ...

Get 入門 Python 3 第2版 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.