- Amazon.co.jp ・本 (296ページ)
- / ISBN・EAN: 9784822283155
作品紹介・あらすじ
プログラムがメモリーにロードされ、CPUによって解釈・実行される仕組みをわかりやすく解説。
感想・レビュー・書評
-
ある古本屋で初版を見かけ、面白そうだったのでネットで購入した一冊。プログラミングに触れる機会はあるけれど、仕組みは全然知らないことを改めて実感した。特に1章と10章、アセンブリ言語からみたプログラミングとレジスタの関係はこれまで触れたことのない興味深い内容だった。理解できたのは全体の3割くらいというところ。
以下備忘録、
・CPUはマシン語にコンパイルされたプログラムを解釈・実行する装置(レジスタの集まり)
・アセンブリ言語:ニーモニック(英語に似た略語)を用いたマシン語と一対一で対応する低級言語,
疑似命令(コメント)とオペコード(主語)とオペランド(述語)で構成,
jumpを使ってifやloopを実行
・2進数で制御->電子回路(IC)のon,offを表現,
2進数=binary digit=bit,byte=8桁の2進数(8bit),
基数が2,重みをかけて足し算(10進数:基数が10),
10進数<->2進数が必ず対応しない
-> 二進数による近似を使う = 誤差が生じる,
・浮動小数点数:(符号)(仮数)(基数)(指数)
例 +1.23*10^(-2) <-> 固定小数点数 0.0123
・1KB = 1024 Byte = 2^10 Byte
・API = Windowsが提供する関数セット
・ドライバ = ハードウェアとの基本的な入出力を行う(ハードウェアを制御する)プログラム,OSの一部詳細をみるコメント0件をすべて表示 -
あるプログラムを起動してからの動きとかを知ることが出来て、非常にワクワクする内容でした。
読み重ねる度に新たに発見がある内容かと思いますので、また読み直したいと思っております。 -
# 書評☆4 プログラムはなぜ動くのか 第2版 | CPUの動作,プログラムの動作がわかりやすく,できれば早く読みたかった
## 概要
この本は,「[矢沢久雄セレクション アルゴリズム&デザインパターン](https://senooken.jp/blog/2018/09/05/)」で存在を知り,気になったので読んだ。
書名通り,プログラムが動作する仕組みを解説している。具体的には,以下のような項目について解説されている。
* CPUの動作内容
* 2進数による演算
* 浮動小数点の扱い
* メモリーの仕組み
* メモリーとディスク
* データ圧縮アルゴリズム
* アセンブリ言語
* ハードウェアの制御
IPAの情報処理技術者試験などでそれなりに情報の勉強をしていたつもりだが,この本で書かれている内容はあまり知らなかった。
普通にプログラミングの勉強をしていたら,学ぶことはないが,しっておくことでプログラミングでも活かせることが多かった。できれば,もっと早くに読んでおきたかった。
## 参考
特に有用だったのは,以下の章だ。
* 第1章 プログラマにとってCPUとは何か
* 第10章 アセンブリ言語からプログラムの本当の姿を知る
第1章では,コンピューターの演算を担当するCPUの動作について解説している。
どういうレジスターがあって,条件分岐や繰り返し,比較,関数呼び出しをどう実現しているのかを解説している。
第10章では,C言語のソースコードをアセンブリに変換して,一行一行機械語との対応を示している。
関数呼び出しに,スタックを使って,実行前のアドレスに移動したり,スタックを使うため,関数内の変数はスコープを持つなど解説している。グローバル変数とローカル変数のスコープがなぜ違うのかという理由を,メモリー上に格納される領域から理解できるようになった。
## 結論
CPUやアセンブリ言語,機械語という視点から,プログラムがどういうしくみで動作しているのかをわかりやすく解説していた。
こういう情報はなかなか触れる機会がない。できれば,プログラミングを学ぶ最初の方の段階で触れておくと,あとあと良いと思った。
個人的には,もう少し詳しい内容が欲しくなった。アセンブリ言語についての知識があると,プログラミング言語の仕組みの理解が深まるように感じたので,アセンブリ言語についてもう少し勉強しても良いと感じた。
* 読了日; 2018-06-28
* パーマリンク: <https://senooken.jp/blog/2018/11/14/> -
ITに関係する人も、関係ない人も一旦読んでおきましょう。
色々なベーシックな知識が整理されて入ってきます。
そして、その後に10年たったら再読しましょう。
やはり、色々なベーシックな知識が整理されて入ってきます。 -
【ざっくり概要】
タイトル通り、プログラムがなぜ動くのかの解説が詳細に書かれている。
【感想】
ハードウェアの説明から細かに説明されているので、プログラムが動く仕組みを本質から学ぶことができる。
ただ現代の技術を考えると、この本に記載されているプログラムの仕組み全てを理解していなくても、ある程度の開発は行うことができると思う。他の方のレビューにも書いてあるように雑学に近い部分も多い。(もちろん本来プログラムの仕組みについてはITエンジニアとして理解しておくべきことではあるが)
正直なところ、読んだことでプログラミングが劇的に効率化されるというわけではない。しかし、駆け出しプログラマーのようなエンジニア歴が浅い方は、早いうちに読んでおき仕組みの部分を頭に入れておくと、将来的にデバッグ等で役立つ本なのではないかと感じた。 -
新しい版で読むべきだったが、PCのローレベルでの動作が具体的に細かく解説されている。
-
基礎からキチンと説き起こしたモノかと期待したが、雑学に、近い。それも古いWindows限定!知識の補完には役立った!
-
第二版とはいえ情報は結構古いが、CSとか全くやっていない私には色々とためになることがあ多かった。
特に前半の、符号、補数、基数とか小数の扱い、ICメモリの仕組みとかは知らなかったので面白かった。
後半は意外と知っていることが多かった。 -
1冊でプログラム知識がしっかりとまとまっている。ただし、決して初心者向けの本ではない。特に、第10章のアセンブリ言語関係は、ある程度プログラミングを経験した人が理解を深めるのに適していると感じる。記述が少し古い箇所もあるため、最新の言葉の定義はネット検索等する必要がある。