プログラムはなぜ動くのか(1章)
やったこと
- プログラムはなぜ動くのかという本の第一章を読んだ(読んでいる)
- 以前も読んだはずなのに覚えていないということはインプットしただけで、記憶に繋がっていない証拠。
第一章の内容:CPUについて
- CPUがコンピュータの中央演算装置であって、プログラムを解釈・実行する装置であるという事実よりもプログラマは CPUがどのようにプログラムを解釈・実行しているのかを知る必要がある。
- 前提として、人間が記述する高水準言語からCPUが解釈・実行することができるマシン語になるまでの手順として、まず高水準言語がコンパイラによって、 EXEファイルになる。ユーザがプログラムを起動したらEXEファイルのコピーがメインメモリーに移動して、指定されたメモリーのアドレス内の処理をCPUが解釈・実行する。
- CPUの実体はトランジスタから構成されるIC(集積回路)の集まりであり、レジスタ、制御装置、演算装置、クロック信号の4つの装置が存在する。
- レジスタは理解しておかないといけない。なぜなら、プログラムはレジスタが処理するから。
- レジスタは命令やデータの格納場所。
- レジスタは、 プログラム・カウンタ、アキュームレーターなどの種類に分別されていて、それぞれの種類ごとに役割がある。
- プログラムが呼び出せれる仕組みとしては、メモリー(主にメインメモリー)というプログラムの命令やデータが格納されている場所を プログラムカウンタが指定することで、指定されたメモリーのアドレスの処理を呼び出して実行する。
独り言
普段、Androidアプリ開発をしていて、Jetpack Composeなどのコード(プログラム)を記述したり、読んだりしているが、 そもそもプログラムを抽象的な言葉で表現するとコンピュータが実行する処理の順番を示すものという風に表現しており、 プログラム=コードだという認識があったので、言葉で理解するのに違和感を感じているが、その通りである。 レジスタについて役割と種類は大まかなに知れたから、どうやって、プログラムを処理しているのかについて理解する。