概要
長く読み続けられている名著。
ソフトウェアエンジニアとして働いているが、実際にPCを自作したことなどない自分が少しでもハードウェアのことについて知るための入り口として購入。
Kindle版。
第1章 コンピュータの3大原則とは
以下の原則はずっと変わらない。これを念頭に置いて今後の章を読み進めていくこと。
- コンピュータは、入力、演算、出力を行う機械である
- プログラムは、命令とデータの集合体である
- コンピュータの都合は、人間の感覚と異なる場合がある
1,2はある程度触れていれば、理解できる。
3については半角カタカナの「ヤザワ」はコンピュータ上で、4文字ですよという説明だった。
人間から見たら、「やざわ」は3文字であるが、コンピュータ上では4文字として扱うという感覚の違いがあるよねと。
実際に初めて知ったが、「ヤザワ」を1文字ずつバックスペースキーで削除していくと以下のように濁点だけ削除できる。
「ヤザワ」→「ヤザ」→「ヤサ」
これが全角だとそうはならない。
「ヤザワ」→「ヤザ」→「ヤ」
半角カタカナを普段使うことがないため知らなかった。
第2章 コンピュータを作ってみよう
巻末に付属のコンピュータの回路図を印刷して、それらを色鉛筆でなぞっていくことでコンピュータの作成を疑似体験してみようという章。
面倒かと思いきやこれが結構楽しく、実際に作ってみたいと思うようになった。
構成している主要なパーツはCPUとメモリーとI/Oだけで意外なほどにシンプルな構成で理解しやすかった。
ただ実際に作る際には、これだけの配線を用意したり、半田付けが必要だったりここまでスムーズにいくことではないのだろう。

疑問
- CPUとメモリーとI/Oって別々にパーツ購入するのか
- 電源は普段の家電で使用するようなコンセントではなさそうだが、家庭用電源からコンピュータ用の電源に変換するような機器が必要なのか
- 発熱しそうだが冷却装置などはこの主要パーツの側に配置するのか
第3章 一度は体験してほしいアセンブラ
低水準言語と高水準言語について
現代のソフトウェアエンジニアが触れるプログラミング言語はほとんどが高水準言語(Python、Java、Go、etc...)であろう。
この高低の概念は、高いほど抽象的であり人間が理解しやすく全体を見通すというイメージ、低いほど具体的で機械が理解しやすく細部の詳細を見るというイメージである。
ここでは低水準言語であるアセンブラを見ていく。
アセンブラは、ほぼ数字の羅列であるマシン語の命令箇所を英単語に置き換えたもの。よってアセンブラとマシン語は1対1の関係がある。
この章ではアセンブラで「1と2を加算する」というプログラムを作成し、CASLⅡシミュレータを使用して、プログラムがどのようにCPU・メモリ間で動作するのかを把握することが目的だった。
自分はMacなのでCASL Ⅱシミュレータは使用できず。
続きは読んだら随時更新