『プログラムはなぜ動くのか 第3版』の「はじめに」を以下に公開いたします。ぜひ、本書のテーマ、生まれた経緯、内容構成を知っていただければ幸いです。

はじめに

 皆さんの中には、Windows でコンピュータに初めて触れた人や、JavaやPython などの高水準言語でプログラミングを始めた人が多いことでしょう。Windows のグラフィカルな操作性は、コンピュータを使いやすいものにしてくれました。高水準言語を使えば、コンピュータの内部的な動作を意識せずに、簡単な手順でプログラムを作成できます。思えば、便利な時代になったものです。

 しかし、喜んでばかりもいられません。便利な時代の代償として、ある程度のプログラミング能力が習得できても、技術的にもう一歩スキルアップできないことや、オリジナルのプログラムを作成するための応用力を身につけられずに悩んでいるプログラマが増えているのも事実です。この問題の原因は、プログラムが動作する根本的な仕組みを理解していないからです。

 「プログラムのアイコンをダブルクリックすればプログラムが動作する」などと、見かけだけをとらえているようではダメです。「メモリーにロードされたマシン語のプログラムが、CPU によって解釈・実行され、それによってコンピュータというシステム全体の制御やデータの演算が行われる」という、本当の仕組みを知る必要があります。プログラムが動作する仕組みがわかれば、確実にスキルアップでき、応用力も身につくはずです。

 本書は、これからプログラミングを始めたい人、スキルアップを目指す初級プログラマ、そしてすべてのコンピュータ・ユーザーのために、プログラムが動作する仕組みをやさしく解き明かしたものです。説明の都合上、コンピュータのハードウエアが登場することも多々ありますが、あくまでもプログラムすなわちソフトウエアがテーマです。

 本書の内容は、日経ソフトウエアに連載された「プログラムはなぜ動くのか」をまとめたものです。本書の第1 版は、2001 年10 月の発刊以来、多くの読者に読んでいただき、いろいろな反響をいただきました。なかでも多かったのが「CPU のレジスタとメモリーの働きがわかり、自分が書いたプログラムが動作する仕組みがわかった」という嬉しい反響です。一方で、プログラミング経験が少ない読者からは「内容がややむずかしい」との声もありました。

 そこで、2007 年4 月に発刊された第2 版では、ハードウエアに関する説明を加筆し、サンプル・プログラムで使用する言語を、かつてのVisual Basic から、ハードウエアの説明に適したC 言語に置き換えました。さらに、巻末に補章として、C 言語の解説を追加しました。第1 版をむずかしいと感じた読者にも、満足していただけたことでしょう。

 このたび、第3 版を発刊させていただくにあたり、あらためて全文を見直して、登場する製品や開発ツールなどを新しいものに置き換え、プログラミングが初めてという人でも戸惑わないように、本文や注釈に大幅な加筆を加えました。さらに、新たに書き下ろした第12 章では、Pythonを使った機械学習を取り上げ、巻末の補章に、Python の解説を追加しました。第1 版と第2 版をお読みいただいた読者にも、きっと満足していただけると思います。

 何事にも言えることですが、ものごとの本質を知ることは、とても大切なことです。本質を知ってこそ応用が利きます。新しい技術が登場しても、容易に理解できます。本書によって、プログラムを奥底まで探究し、プログラムの本質に触れてください。

2021年4月 矢沢 久雄