変数についてもうすこし調べてみたが、
時間がなくてまとめきれなかったので、今回はメモ。
本当に初心者の人に捧げるコンピューター入門
高級言語って何が高級?
「変数というと例えば関数や方程式のXとかYを思い出しますね。」
「XとかYは適当な数が入れられる記号のことでした。」
「コンピューターの高級言語における変数もほとんど似たような物だと思っていただいて結構です。」
「ただその実体は、メモリーのあるアドレスのことなのです。」
これを読むと変数はメモリの位置を表す物=アドレスである。
ここからすると、メモリというハードウエアの構造に関連する。
コンピュータアーキテクチャについて調べてみないと「変数」の起源は明確にならないような気がする。
ハードウエアの制限からメモリを使用するという考えがうまれ、メモリを使うとう考え方が、変数の概念を生み出したのではないかという推測。
コンピュータを設計しよう!
「レジスタを使用することによって全てのタイミングをクロック単位で扱うことができます。」
ここに説明されているようにレジスタは加算器などを構成する各回路がタイミングを合わせてちゃんとした結果が出せるように一役買っている。
コンピュータの動作原理
これは、最近のコンピュータの基本動作を説明している。
レジスタは高速な時間の中で使われていることがわかる。
命令からデータ、アドレスそれぞれすべてがレジスタにいったん納められ使われるタイミングを計っている。それがすべてではないとは思うが、レジスタがタイミング合わせのために使われていることがわかる。
-- 基礎から学ぶコンピュータ -- 《第十六号》 CPU の中身
アキュムレータマシン、レジスタマシン、スタックマシンが簡潔にわかりやすく説明してある。
アキュームレータマシンをみると、計算は基本的に累算されることで行われる。
マイコミジャーナル コンピュータアーキテクチャの話
単純な構造のコンピュータ - アキュムレータマシン
アキュームレータマシンの詳細をわかりやすくせつめいしてあるPDFファイル
アキュームレータマシンの実装(1)pdf
元ネタはここ、他にも「加減算器の実装」などおもしろそうなものがある。
計算機論理回路 減算器
かけ算も割り算も引き算も二進数の足し算によって行われる。
引き算でさえ、補数を足し算するというやり方で行われる。
それによって、回路は加算器だけで事足りる。
このしくみを考えた人はすごいと思う。
二進数だけで計算しようとして考え出したのか、それとも最初から二進数で計算する機械に実装する
目的で考え出されたのかはわからないが。
ハードウェアの基礎知識
かけ算や割り算がどのようなしくみで計算されるのかここをよむとわかりやすい。
このページは論理素子からアニメーションの図入りで説明があり、とてもわかりやすい。
何度も足し算が繰り返される。
この繰り返すときには、その直前の計算の答えをひきつぐので、そこにレジスタが必要なことがわかる。
フォンノイマン方式(ストアド)は、
命令もメモリに格納して、命令自体をデータとして扱い、変更することが
できるというアイデアだった。
これが、論理回路に計算をさせるのに必要だったレジスタの誕生から、
メモリを拡張して利用していく時代へと進化するきっかけとなったのか、?
こういった、本当に根本部分での操作にメモリが不可欠なことは理解できる。
それがどのように高級言語の変数にまでつながってくるのか?
0 件のコメント:
コメントを投稿