「プログラムはなぜ動くのか」について
プログラムの処理をコードとして書くということは、コンピュータに何をして欲しいのかを書くということです。
そのためにはコンピュータはなにができるのか、なにをしているのかを知る必要があります。
それを事前に学習するためには良い本なのです。
どんなことが書いてあるか
下記の章立てで「プログラムのアイコンをダブルクリックしてから実際にプログラムが動作するまでの仕組み」が解説されています。
第1章 プログラマにとってCPUとはなにか
まず最初に出てくるのはCPUについてです。
プログラムを解釈・実行する装置であるCPUがどのように動いているのか、どのような仕組みになっているかが解説されています。
第2章 データを2進数でイメージしよう
コンピュータはどのようにデータを管理したり処理しているのかについてです。
ご存じの人も多いかもしれませんが、コンピュータは情報を2進数で取り扱っています。
そもそもなぜ2進数で取り扱うのか、どのように2進で処理されているのかが解説されています
第3章 コンピュータが小数点数の計算を間違える理由
ちょっとおもしろい章ですね。
コンピュータは常に正しい計算結果を出してくれると思っている人は多いでしょう。
しかし、コンピュータも計算を間違えてしまうケースがあるのですね。
その計算例を把握しながら、コンピュータの計算方法について解説されています。
第4章 四角いメモリーを丸く使う
コンピュータで情報を処理する際には、処理に必要なデータをメモリやディスクに格納して使用します。
ここでは、そのメモリーについて構造から解説されています。
第5章 メモリーとディスクの親密な関係
前章ではメモリについて解説されていました。
ここでは、もう一つのディスクについての解説になります。
コンピュータに必要不可欠なメモリーとディスクについて、これで完全に理解できるでしょう。
第6章 自分でデータを圧縮してみよう
大きなファイルを送るときにはファイルを圧縮したり、Webサイトからファイルをダウンロードする際にはファイルが圧縮されていたりしますよね。
この圧縮とはどのようなしくになっているのか、なぜ圧縮ができるのかが解説されています。
第7章 プログラムはどんな環境で動くのか
Windows用のプログラムはMacでは動かない、Mac用のプログラムはWidowsでは動かない。
もっと皆さんの身近なところだと、iPhone用のアプリはAndroidでは動かない、Android用のアプリはiPhoneでは動かない。
これはなんとなく知っていることですよね。
これはそもそもなぜなのか。プログラムをどうさせる環境とは何なのか。
このような内容が解説されています。
第8章 ソース・ファイルから実行可能ファイルができるまで
プログラムはコードを書いただけでは実行できません。
コードを書いた後で、「コンパイル」「リンク」という作業を行い「実行可能ファイル」を作成します。
どのように「実行可能ファイル」が作成されるのか、そしてどのように実行されるのかが解説されています。
第9章 OSとアプリケーションの関係
プログラムを書くと言うことは、アプリケーションを作ると言うことですね。
そのアプリケーションはWindowsやMacと言ったOSの上で動かすことになります。
ではOSって何なんだろう、OSって何をしてくれているんだろう、というところが解説されています。
第10章 アセンブリ言語からプログラムの本当の姿を知る
コンピュータに処理を命令するためにプログラムコードを書きます。
プログラムを書けばコンピュータが処理をしてくれるというイメージですが、さらに一歩踏み込んで、プログラムってどのような仕組みになっているのかを確認します。
ここではアセンブリ言語を使用して、実際にプログラムが動作する仕組みが解説されています。
第11章 ハードウエアを制御する方法
ここまでの章では、CPUを制御するために必要な内容が解説されていました。
この章では、ハードウエアをプログラムで制御する方法について解説されています。
第12章 コンピュータに「学習」をさせるには
個人的にはこの章が第3版で新たに加わったと言うこともあり、一番好きな章です。
機械学習とは何なのか、どのような処理をしているかが解説されています。
まとめ
さまざまな理由でプログラムを学び始める人は増えてきました。
しかし、プログラミング学習というと、多くの人はいきなりプログラム言語の学習を始めるでしょう。
その前にちょっと「そもそもプログラムって何なんだろう?」「プログラムって何をしているんだろう?」こんなところから入ってみるのも良いのではないでしょうか。
私としてはプログラミング学習を始める前には必ず今回の「プログラムはなぜ動くのか」を読んで欲しいと思っています。