プログラムはなぜ動くのか 第 3 版 知っておきたいプログラミングの基礎知識(プログラムハナゼウゴクノカダイサンパンシッテオキタイプログラミングノキソチシキ)
ハードウェア- 著者:
- 矢沢 久雄(ヤザワヒサオ)
- 出版社:
- 日経BP
- 出版日:
- 2021年05月14日頃
- ISBN:
- 9784296000197
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
『プログラムはなぜ動くのか』 14 年ぶり、待望の改訂第 3 版!
「これからの 10 年も通用する基本」を、より多くの読者に身につけてもらうために改訂しました。
プログラムがコンピュータの中でどのように動作するのかを、誰にでもわかるように説明します。プログラムは、メモリーにロードされ、 CPU によって解釈・実行されます。その仕組みを、多数の図を使って、順序だてて解説します。
第 3 版では、あらためて全文を見直して、登場する製品や開発ツールなどを新しいものに置き換え、プログラミングが初めてという人でも戸惑わないように、本文や注釈に大幅な加筆を加えています。第 2 版で好評だったハードウエアに関する説明や、 C 言語によるサンプル・プログラムも更新しています。巻末の補章の C 言語の解説「レッツ・トライ C 言語!」も最新仕様に沿うよう改訂しています。
新たに書き下ろした第 12 章では、 Python を使った機械学習を取り上げます。初めて機械学習を体験する読者は、コンピュータとプログラムの活用方法としての人工知能 (AI) を身近に感じられることでしょう。さらに、巻末の補章に Python の解説「レッツ・トライ Python!」を追加しています。
本書の特徴
◆プログラムの成り立ち、動作の仕組みを説明…基礎知識をきちんと解説!
◆メモリーについて充実した説明…プログラマの必須知識をしっかり解説!
◆ HW 、 OS 、アプリ、クラウドなど動作環境を網羅…実践・実装知識も解説!
何事にも言えることですが、ものごとの本質を知ることは、とても大切なことです。本質を知ってこそ応用が利きます。新しい技術が登場しても、容易に理解できます。本書によって、プログラムを奥底まで探究し、プログラムの本質に触れてください。
ーー「おわりに」よりーー
【目次】
第 1 章 プログラマにとって CPU とはなにか
第 2 章 データを 2 進数でイメージしよう
コラム:ピカピカの小学生に CPU と 2 進数を説明する
第 3 章 コンピュータが小数点数の計算を間違える理由
第 4 章 四角いメモリーを丸く使う
第 5 章 メモリーとディスクの親密な関係
第 6 章 自分でデータを圧縮してみよう
コラム:ゲームに夢中な中学生にメモリーとディスクを説明する
第 7 章 プログラムはどんな環境で動くのか
第 8 章 ソース・ファイルから実行可能ファイルができるまで
第 9 章 OS とアプリケーションの関係
コラム:スマホが大好きな女子高生に OS の役割を説明する
第 10 章 アセンブリ言語からプログラムの本当の姿を知る
第 11 章 ハードウエアを制御する方法
コラム:近所のおばあちゃんにディスプレイとテレビの違いを説明する
第 12 章 コンピュータに「学習」をさせるには
コラム:行きつけの居酒屋のマスターに機械学習の種類を説明する
補章 1 レッツ・トライ C 言語!
補章 2 レッツ・トライ Python!
技書の森解説
変数や関数の書き方は覚えたのに、そのコードがなぜ画面に結果を出すのかは説明できない。『プログラムはなぜ動くのか』 (矢沢久雄 著、日経 BP) は、その空白を埋めるために書かれた定番書で、 2021 年 5 月刊の第 3 版 (A5 判) は、 2001 年 10 月の初版・ 2007 年 4 月の第 2 版に続く 14 年ぶりの改訂 です。プログラムはメモリーにロードされ、 CPU によって解釈・実行される。この原理を多数の図で順序立てて説く骨格は、版を重ねても一貫しています。
低レイヤの原理がなぜ解決力の差になるか
高水準言語とフレームワークの発達で、コンピュータの内部動作を知らなくても動くものは作れるようになりました。それでも、 0.1 を 3 回足しても 0.3 にぴったりならない浮動小数点の誤差、メモリー不足やスタックの振る舞い、コンパイルエラー とリンクエラーの区別といった場面では、抽象化の一段下の層を知っているかどうかがそのまま解決力の差になります。 CPU ・メモリー・ OS の役割分担という土台は数十年単位で変わっておらず、一度固めれば後から学ぶ言語やツールを類推で理解できるようになります。本書が改訂を挟みながら内容の骨格を変えずに済んでいるのも、扱う対象がそうした 賞味期限の長い知識 だからです。
全 12 章 + 補章 2 本の構成と理解度を測るコラム
構成は全 12 章と補章 2 本です。プログラマにとって CPU とは何かから始まり、データを 2 進数でイメージする、コンピュータが小数点数の計算を間違える理由、四角いメモリーを丸く使う、メモリーとディスクの関係、データ圧縮と低レイヤの基礎を踏み、後半はプログラムの実行環境、ソース・ファイルから実行可能ファイルができるまで、 OS とアプリケーションの関係、アセンブリ言語から見るプログラムの本当の姿、ハードウエアの制御へと進みます。章間には、小学生に CPU と 2 進数を説明する、居酒屋のマスターに機械学習の種類を説明するといった、専門用語に頼らず説明を試みるコラムが挟まれており、自分の理解度を測る物差しとしても機能します。
第 3 版の変更点: Python 機械学習の新章
第 3 版の目玉は書き下ろしの第 12 章で、 Python を使った機械学習を取り上げ、コンピュータに「学習」をさせる仕組みを手を動かして体験できます。巻末補章も従来の「レッツ・トライ C 言語!」に加えて「レッツ・トライ Python!」が追加されました。既存の章も全文が見直され、登場する製品や開発ツールの記述が刊行時点のものに更新されたほか、プログラミングが初めての読者でも戸惑わないよう本文と注釈に大幅な加筆が入っています。
想定読者と姉妹書との使い分け
想定読者は、最初の言語を学んだ直後の人、コードは書けるが仕組みを問われると言葉に詰まる人、低レイヤの原理を独学で補いたい人です。数式やアセンブリの深い前提知識は要りません。同じ著者の姉妹書『コンピュータはなぜ動くのか』 (初版 2003 年、改訂版 2022 年、日経 BP) はハードウエアとソフトウエアの全体像へ視野を広げる一冊で、プログラムの実行という一点を掘り下げる本書とは補完関係にあります。プログラマとしての足場固めが目的なら、まず本書から入るのが自然な順路です。
すでにアセンブリを読め、コンパイラとリンカの仕事を説明できる中級以上の読者には確認以上の収穫は多くありませんし、特定言語の文法やフレームワークの使い方を教える本でもありません。しかし、プログラムが動く原理を体系立てて学ばないまま実務に入った人にとっては、日々の「なぜか動かない」を原理から切り分けられるようになる投資効率の高い一冊です。読み終えたあとに手元へ残るのは、コンピュータの上で何が起きているのかという、この先も長く使い続けられる地図です。
言及 Qiita 記事 (17 件)
【データ分析の必読10冊+差をつける10冊+100冊超】データサイエンス、データ分析、機械学習関連の本
♡ 1632本, 機械学習, 数学, データ分析, データサイエンス【最新技術に振り回されない】 低レイヤーに強くなるための鉄板コンテンツ集
♡ 1076CPU, コンパイラ, OS, システムプログラミング, 低レイヤ新人さんにすすめる有益な技術書達 2022春
♡ 528読書, まとめ, 新人プログラマ応援SE 1年目で読んだ技術書68冊+α
♡ 276Java, 初心者, 技術書, Se低レイヤーの入り方
♡ 109C, Linux, OS, 低レイヤ新人エンジニアのためのブックリスト
♡ 20本, 初心者, 技術書, 応用情報技術者試験, 新人エンジニアオブジェクトとはつまり"メモリ上の実態"のことで人によって指し示すことが違うこと
♡ 15C, C++, オブジェクト指向, ポエムエンジニアに転向して1年で開発チームのリーダーになるまでに勉強したことをまとめる
♡ 14Python, JavaScript, AWS, 初心者, 技術書にわかにアセンブリに興味をもった自分が、ふとGeminiに学習プランを聞いてみたら思わぬ収穫があった話
♡ 2アセンブリ言語, Gemini果たして自分の書いているコードは読みやすいか
♡ 2リーダブルコード, 技術書, アウトプット
この本に興味がある方におすすめ
この本に関連
矢沢 久雄 の他の書籍
関連記事
Python 本の選び方 - 独学の最初の 1 冊から実務品質まで
Python 本の選び方を「動機」から逆算して整理。プログラミング未経験の最初の 1 冊、業務自動化に直結する本、型ヒントとコード品質で実務水準へ進む本まで、2026 年 8 月時点の定番を独学ルートに沿って解説します。
本の選び方に正解はない
どの本を選べばいいか迷って決められない。同じテーマの入門書は扱う基礎が大きく重なるため、どれからでも学べます。確認すべき 1 点と、迷いを終わらせる決め方を解説します。
機械学習 / ディープラーニング本ガイド - エンジニアが読むべき AI 技術書の選び方
機械学習の基礎から実践まで学べる技術書の選び方を紹介。「Python ではじめる機械学習」などのハンズオン本を軸に、数学が苦手な人向けの学習ルート、ディープラーニング本への進み方、ML 本の賞味期限の見極め方を解説します。