本書はアセンブリとC言語を使用し、インテル製アーキテクチャの64ビット版が、コンパイルされたプログラムをどのように処理し、データをどのように、そしてどこに配置し、それらを使用しているのかを解説しています。ごくごく基本的な動作原理をプログラミングすることで紐解きながら学ぶ学習書です。
「IoT」というコトバが爆発的に広がり、老若男女だれもが知っているIT用語となった昨今ではあるけれど、そのインフラストラクチャとしてのPCアーキテクチャは、大多数の人々にとってはブラックボックスのままです。
とはいえ、そのブラックボックスを十全に理解し、各種ブラックボックスをフル活用できなければ、IoT自体の活用や発展・進歩はありえません。
本書はアセンブリとC言語を使用し、インテル製アーキテクチャの64ビット版が、コンパイルされたプログラムをどのように処理し、データをどのように、そしてどこに配置し、それらを使用しているのか、を克明に解説した1冊です。
すなわち、ネットワークにぶら下がって各種データをやり取りしているPCの、ごくごく基本的な動作原理をプログラミングすることで紐解きながら学ぶ、歯ごたえと滋養に満ちた学習書といえるでしょう。
アセンブラやC言語を多少なりとも知っていれば、知識の深度と対象への理解が増しますし、知らなくても必要最小限の知識を提供しているので、熱意さえあれば性能を重視したプログラムを書けるまで成長できるでしょう。
【本書の目的】
Intel x64をベースに、低レベルプログラミング領域における堅実な知識の蓄積と洞察力の向上を手助けすることです。最終的に、以下の事柄を目指します。
・アセンブリ言語で自由自在に書くことができる。
・Intel 64のプログラミングモデルを理解する。
・C11で、保守が容易で堅牢なコードを書ける。
・コンパイルのプロセスを理解し、アセンブリを解読できる。
・コンパイルされたアセンブリコードのエラーをデバッグできる。
・適切な計算モデルを使うことで、プログラムの複雑さを大きく減らせる。
・性能が重視されるコードを書ける。
【本書の特徴】
C言語やアセンブリを知らなくても、それらの必要最小限の知識とともに、順序立てて体系を解説しています。
また、各章末には適切な問題を配置し、自身の理解度を把握できます。それらの解答はすべてGitHub上に展開されているので、容易に確認できますし、必要であればコンパイルし、実行して結果を確認することも可能です。
第1部 アセンブリ言語とコンピュータアーキテクチャ
第1章 コンピュータアーキテクチャの基礎
第2章 アセンブリ言語
第3章 レガシー
第4章 仮想メモリ
第5章 コンパイル処理のパイプライン
第6章 割り込みとシステムコール
第7章 計算モデル
第2部 プログラミング言語C
第8章 基礎
第9章 型システム
第10章 コードの構造
第11章 メモリ
第12章 構文と意味と実際
第13章 良いコードを書くには
第3部 Cとアセンブラの間
第14章 変換処理の詳細
第15章 共有オブジェクトとコードモデル
第16章 性能
第17章 マルチスレッド
第4部 付録
第18章 付録A:gdbを使う
第19章 付録B:makeを使う
第20章 付録C:システムコール
第21章 付録D:性能テストの情報
第22章 付録E:参考文献
aoi_shirase さん
2018-03-01
大学の教科書とかっぽい 多少知識がなくても丁寧に説明してくれるので本人のやる気があれば読めるいい本だと思う またコンピュータ科学を勉強している人にとっても良い復習になる 各章ごとに練習問題ついてるのでみんなで輪読してもいいと思う