計算機の歴史
気になるところを抜粋moyamin.icon
機械式計算機
パンチカード
1801年、ジョゼフ・マリー・ジャカールが開発したジャカード織機は織りのパターンをパンチカードで制御するようになっていた。パンチカードを差し替えるだけで織機自体は変更せずに様々なデザインの布を織ることができる。これはプログラミングの観点で画期的な業績である。 チャールズ・バベッジは機械式の自動計算機としては非常に大規模なものを作り、また設計している。1833年、バベッジは数表作成用の階差機関の開発からより汎用的な解析機関へと興味を移した。これは、ジャカールのパンチカードをプログラムの表現に使った(ジャカード織機では、カードの穴は経糸の上げ下げを直接示すだけだが、これはコード化である)。 アナログ計算機
miyamonz.icon
パンチカード、アナログ計算機、コンピュータの関係性がよく分からない
コンピュータ
第二次世界大戦前およびその最中、機械装置が電子回路で代替され、アナログ式の計算がデジタル式の計算に取って代わられると現代的コンピューティングの時代が始まった。Zuse Z3、アタナソフ&ベリー・コンピュータ、Colossus、ENIACといったマシンは、リレーや真空管などを使った回路で構成され、パンチカードやさん孔テープを入力および不揮発性記憶媒体に利用した。これらの中の1つを世界初のコンピュータと定義することは、多くの微妙な点(後に掲載した表を参照)を見逃すことになる。
チューリングは機械的なプロセスで解くことが出来ない問題(停止性問題)があることを証明したわけなのだが、その過程でチューリングはテープに格納したプログラムを実行する万能計算機を定義した。それがチューリングマシンである。記憶容量が有限だという制限を除いて、現代のコンピュータはチューリング完全であり、万能チューリングマシンと同等のアルゴリズム実行能力がある。 計算機が実用的な汎用コンピュータとなるためには、何らかの便利な入出力機構(例えばさん孔テープ)が必須である。
アラン・チューリングの理論上の「万能計算機械」について知っていたジョン・フォン・ノイマンは、記憶装置にプログラムとデータの両方を格納するアーキテクチャを定義した。 事実上、ほとんど全てのコンピュータがこのアーキテクチャ(あるいはそこからの派生)を採用している。
バベッジの設計が示しているように、機械だけで完全なコンピュータを実装することも理論的には可能だが、電子工学を採用することで高速化でき、さらに小型化が可能となった。
第二次世界大戦のころのコンピュータ開発の流れは3つあった。
第一の流れはほとんど無視され、
第二の流れは秘密にされた。
第一の流れはコンラート・ツーゼによるドイツでの開発、
第二の流れはイギリスでのColossusの開発である。
これらはアメリカ合衆国での様々なコンピュータ開発プロジェクトにはほとんど影響を及ぼしていない。
第三の流れはエッカートとモークリーによりENIACとEDVACの開発であり、こちらは広く公開されていた
ジョージ・スティビッツは、一般にデジタルコンピュータの父とされている。ベル研究所で働いていた1937年11月、"Model K" と名付けたリレー式計算機を発明し製作。これが二進法を計算機に使った最初の例となった