「コンピューター」という言葉は、計算や計算を実行した人を表すものとして1613年に初めて使われました。その定義は、技術産業が主要なタスクを計算するマシンを生み出す19世紀の終わりまで同じままでした。
「最初のコンピューターが発明されたのはいつか」に簡単な答えることはできません。コンピューターはさまざまに分類されているためです。 最初のメカニカルコンピューティングマシンは、Charles Babbageによって1822年に発明されました。しかし、現在の人がコンピューターと考えるものとはまったく違っています。
コンピューター開発の急速な発展については知らないことがたくさんありますが、教科書にも載っていない多くの科学者の貢献があります。コンピューターについての知識をここで一挙にまとめ、最初のマシンからマイクロチップ時代まで、コンピューターサイエンスの素晴らしい発明たちをご紹介します。
25. 世界初のコンピューター:「階差機関」-1821年
画像ソース:ウィキメディア
Charles Babbage(コンピューターの父としても知られています)は、階差機関の研究をしていました。
これは、有限差分の原理に基づいています。機械的に実装するのが難しい乗算と除算の必要性を取り除いて算術加算のみを使用し多項式関数を計算、集計するために厳密な設計が行われました。
このプロジェクトは英国政府から委託されましたが、その高い生産コストのため資金は途中で停止、機械は完成しませんでした。
24.世界初の汎用コンピューター:解析機関– 1834年
画像ソース:ウィキメディア
Charles Babbageは、より意欲的なマシン、最初の汎用プログラマブルコンピューティングエンジンを考案しました。これは後に解析機関と呼ばれ現代のデジタルコンピューターに見られる多くの機能があります。
マシンはパンチカードを使用してプログラマブルで、エンジンには数値と中間結果を保持できる「ストア」と、算術演算を実行する別の「ミル」がありました。
エンジンは、直接乗算と除算、並列処理、マイクロプログラミング、反復、ラッチ、条件分岐なども実行できましたが、Babbageはこれらの用語を使用しませんでした。残念ながら、階差機関と同様にこのマシンも完成していません。
23.世界初のコンピュータープログラム– 1841年
画像ソース:ウィキメディア
世界初のコンピュータープログラマー、Ada Lovelaceは、1841年にバベッジの解析機関を使いLuigi Menabrea(イタリアの数学者)の記録の翻訳をしました。
彼女は先見の明のある数学者で、数字は単なる数量以上のものを表すために使用できることを知っていました。彼女は、解析機関のようなマシンを使用して、グラフィックスを作成し、音楽を作り、科学に役立つと予測していました。
22.タビュレーティングマシン– 1884年
Herman Hollerithは、19世紀後半にマシンパンチとカウントカードのアイデアに取り組み、パンチされたカードを電気的に読み取り、分類することで統計的な記録ができるマシンを思いつきました。
彼は1896年にニューヨークでTabulating Machine Companyを起こし、これは後にIBMに成長しました。このマシンは米国では成功しましたが、ヨーロッパではさらに注目を集め、さまざまな統計目的で広く採用されました。
21.世界初のアナログコンピューター:微分解析器– 1930年
画像クレジット:ウィキメディア
最初の近代的なアナログコンピューターは、MITのエンジニアであるVannevar Bushによって開発されました。物理学、工学アプリケーションで最も一般的に使用されている微分方程式の特定のセットを解くことができるアナログ計算機でした。機械は、概算ではあるものの実用的な答えを出しました。
このマシンでは、シャフトの動きが変数を表し、値をギアに入れることで乗算と加算が行われました。円形のテーブル上で異なる半径で回転するナイフエッジホイールが、統合部分にありました。そして、微分方程式を解くために、さまざまな機械的積分器が連結されています。
20.世界初に動作するプログラマブルコンピューター:Z3 – 1941年
Konrad Zuse(発明者、コンピューターのパイオニア)は、1936年にZコンピューターという最初の本格的なコンピューターを設計しました。これは真空管でのブール演算、フリップフロップで動作します。その後数年間にさまざまなテクノロジーを使用することで、Z2、そして最終的にはZ3が生まれました。
Z3は2000リレーで構築され、22ビット長を実装しています。一定のデータとプログラムコードはパンチフィルムに保存し、プログラムを変更するために再配線する必要がありません。
Z3は、ドイツ政府の秘密のプロジェクトで、翼のフラッターの統計分析を実行するためにドイツ航空機研究所によって使用されました。元の機械は、1943年にベルリンの連合軍の砲撃中に破壊されました。
19.世界初の電子コンピューター:ABC – 1942年
Atanasoff-Berry Computer(ABC)は、John Vincent Atanasoffと彼のアシスタントであるClifford E. Berryによって設計、構築されました。現在のRAMのように、ストレージにコンデンサを使用した最初のマシンであり、30の同時操作を実行できました。
ABCは線型方程式のシステムを解くように設計されており、最大29の未知数のシステムを解くことができました。コンピュータはプログラム可能ではありませんでしたが、バイナリ演算や電子スイッチングなど、現代のコンピューティングの重要な要素の先駆けとなりました。
18.世界初のプログラム可能なコンピューター:コロッサス– 1943年
コロッサスは、Tommy Flowersによって作成された世界初の電子プログラマブルコンピューターでした。イギリス人が第二次世界大戦中に秘密のドイツ語メッセージ(ローレンツ暗号で暗号化されたもの)を読むために使用されました。
コロッサスはすべてのメッセージを解読することを想定していませんでした。 Lorenzマシンの近い設定で、アイデアは、ドイツ語メッセージを文字と数字の頻度から翻訳をするというものでした。
1970年代まで、これらのコンピューターは重要機密事項でした。戦争後、すべてのコロッサスは細かく砕かれ、破壊されました。コロッサスを最初に作った人が誰かもわからなくなりました。 2007年、エンジニアらがコロッサスの実用プロトタイプを作成しています。
17.世界初のコンピューターネットワーク– 1940年
1940年から1946年にかけて、George Stibitzと彼のチームは、電子機械式リレーを採用し電話技術を備えた一連の機械を開発しました。これらのマシンは複数のユーザーにサービスを提供するものでした。しかし電子スイッチではなく遅い機械式リレーに基づいていたため、それはすぐに時代遅れになりました。
今日、データ通信の主要な基盤はパケットスイッチングです。ARPANET(Advanced Research Projects Agency Network)は初期のパケットスイッチングネットワークで、プロトコルスイートTCP / IPを実装した最初のネットワーク(1982年)でした。これらはインターネットの技術的基盤になりました。
16.世界初のトラックボール– 1941/1952年
トラックボールと呼ばれる関連する先の尖ったデバイスは、1941年にRalph Benjaminによって、Comprehensive Display System(CDS)という火災制御レーダープロットシステムのために発明されました。彼以前のプロジェクトでは、アナログコンピューターを使用し、ジョイスティックで入力したさまざまな入力ポイントに基づいて、対象の航空機の将来の位置を測定していました。
彼は、より効率的な入力デバイスが必要だと気づき、ローラーボールと呼ばれるものを発明しました。この新しいデバイスには、画面上のカーソルのX-Y座標を制御するのはボールでした。 1947年に特許を取得し、軍事機密として保管されていました。
もう1つの初期のトラックボールであるDATARは、1952年にイギリスの電気技術者Kenyon Taylorとその同僚Fred LongstaffとTom Cranstonによって作られました。コンセプトは先ほどのデバイスに似ています。
トラックボールはX座標とY座標にそれぞれ2枚の合わせて4枚のディスクを使用して動きをピックアップします。デジタルコンピューターは、軌道を計算、パルス符号変調無線信号を使用して、タスクフォースの他の船に結果のデータを転送しました。軍事機密プロジェクトでもあったため、設計は特許を取得していませんでした。
15.世界初の汎用プログラマブル電子コンピューター:ENIAC – 1946年
Electronic Numerical Integrator And Computer(ENIAC)は、チューリング完全なデジタルマシンであり、リプログラミングにより幅広い数値問題を解決できます。主に砲撃テーブル計算や、熱核兵器の実行可能性計算に利用されました。
ENIACの運用終了時(1955年)には、7200個のクリスタルダイオード、17468個の真空管、10000個のコンデンサ、70,000個の抵抗器、500万個を超える手はんだ接合部があるものになっていました。大きさは約8x3x100フィート、重量は30トン、150 kWの電力を消費します。
入力にはカードリーダー、出力にはカードパンチを使用しました。コンピューターの速度は、電子機械よりも1000倍ほども高速でした。
14.世界初の完全な高レベル言語:Plankalkül– 1948年
最初のリレーコンピューターの作者であるドイツのコンピューター科学者Konrad Zuseは、1941年に高レベルのプログラミング言語の開発を始め、自分のマシン(Z4コンピューター)を強力な方法でプログラムする方法を開発しました。
Plankalkülは、非再帰関数、ローカル変数、割り当て操作、条件ステートメント、反復WHILEコンストラクト、論理演算、基本データ型などあらゆる機能を備えた高レベル命令型プログラミング言語です。 Plankalkülは最終的に1972年の論文で全面公開されましたが、最初のコンパイラは1998年に作られました。
13.世界初の保存プログラムコンピュータ電子デジタル:SSEM -1948年
Babyと呼ばれるSSEM(Manchester Small-Scale Experimental Machine)は、1948年6月21日に最初のプログラムを実行しました。このプログラムは、実際にこのコンピューターはTom Kilburnによって書かれ、彼の指導者のFrederic Williamsによって設計されました。現代のコンピューターに不可欠なすべてのモジュールを含む最初の工作機械でした。
SSEMには、32ビットのワード、単一アドレス形式のオーダーコード、32ワードのメモリ、命令あたり約1.2ミリ秒の計算速度があります。ビットは、1や0を書き込む電子ビームで制御できるCRT蛍光体に電荷の形で保存されました。すべての算術演算は、減算と否定を除くソフトウェアが実装されました。
12.世界初のアセンブラー:イニシャルオーダー− 1949年
Assemblerは、アセンブリ言語で記述されたソフトウェアプログラムを、コンピューターで実行できるマシンコードから命令へと解釈します。最初のアセンブラは、EDSAC(Electronic Delay Storage Automatic Calculator)用に設計されました。
イニシャルオーダー(David Wheelerが作成)には31の命令があり、それらはユニセレクター(機械的な読み取り専用メモリー)に組み込まれていました。イニシャルオーダー2番目のバージョンは、41ワードの読み取り専用メモリと、サブルーチンの使用を容易にするための再配置(や調整)機能を備えていました。
11.世界初のパーソナルコンピュータ:サイモン– 1950年
Edmund BerkeleyのSimonはリレーベースのコンピューターであり、デジタルコンピューター概念の教育目的のために設計されました。ユーザーはパンチ紙、やフロントパネルの5つのキーでデータを入力し、プログラムは紙テープから実行されました。 ALUとレジスタには2ビットしか保存されていなかったため、大量の実際の計算には使用できませんでした。
データ入力とともに、パンチテープがメモリストレージに取り込まれマシンがテープから命令を読み取ると、すべての命令が順番に実行されました。加算、大なり、否定、選択の4つの操作を実行できます。出力は5つのランプによって提供されました。
10.世界初のリアルタイムグラフィックディスプレイコンピュータ:AN / FSQ-7 – 1951年
IBMが開発したAN / FSQ-7は、歴史最大のコンピューターでした。 4階建ての建物に2台のWhirlwind IIコンピューターがインストールされていました。
これは防空ネットワークの制御、コマンドシステムでした。 ATABE(自動ターゲット、バッテリー評価)アルゴリズムを使用して、侵入者を迎撃するために航空機やCIM-10 Bomarcミサイルを割り当てるための1つ以上の予想迎撃ポイントを計算しました。
60,000本を超える真空管があり、3000キロワットの電力を使用し、地域レーダーのネットワーク化のために74,000命令/秒を実行しました。各マシンは100人以上のユーザーをサポートしました。 IBMは、1つのユニットを稼働させ、1つのユニットをホットスタンバイに維持していたため、アップタイムが改善されています(約99%)。
9.電子コンピューター用の最初のコンパイラー:A-0システム– 1951年
コンパイラは、高級言語をマシンコードに変換する特別プログラムです。 Grace Hopperは、UNIVAC Iの算術言語バージョン0(やA-0システム)を作成しました。このシステムは一連のサブルーチンと引数をマシンコードに変換することを目的としています。
サブルーチンは数値コードで識別され、引数は各サブルーチンコードの後に統合されました。 A-0はこれらの仕様を機械語に変換し、コンピューターに2回入力して上記プログラムを実行できます。
8.世界初のオープンソースソフトウェア:A-2システム– 1953年
UNIVACキーボードのGrace Murray Hopper
先のA-0システムは後にA-2に進化し、ARITH-MATICとしてリリースされました。 Remington RandのUNIVAC部門で開発され、1953年末にはリリースされました。ユーザーはA-2のソースコードを提供され、UNIVACに機能拡張を送り返すしくみです。
7.最初のオートコード:グレンのオートコード– 1952年
1960年代、「オートコード」という用語は、コンパイラを使用する高レベルのプログラミング言語を指すのに一般的に使用されていました。
Alick Glennieは、マンチェスター大学でMark 1コンピューター用の最初のオートコードを開発しました。これは、最初のコンパイルされたプログラミング言語と見なされます。
彼の主な目標は、Mark 1マシンの難解なコードを明快にすることでした。結果の言語は、マシンコードよりもはるかに整理されて分かりやすくなっていましたが、それでもマシンにまだまだ依存していました。
Mark 1の次のオートコードは、1955年にR.A Brookerによって開発されました。先とは異なり、ほとんどマシンに依存せず、浮動小数点演算を備えていました。ただし、1行に1つの操作しか許可されておらず、ユーザーサブルーチンを定義する方法がありませんでした。
6.世界初の人気の高水準言語:FORTRAN – 1957年
パンチカード上のFORTRANコード
FORTRAN(FORmula TRANslator)は、IBMのJohn Backus率いるチームによって作成され、プログラミングの分野を早くから支配するようになり、計算流体力学、有限要素解析、計算化学、計算物理学などの科学、工学分野で半世紀以上使用されてきました。
目的は、学習しやすく、マシンに依存せず、さまざまなアプリケーションに適した言語を構築し、通常の代数表記法のように複雑な数式を記述できるようにすることでした。
コーディングが簡単だったため、プログラマは以前の5倍の速度でコードを記述できましたが、実行効率は20%低下していました。
5.世界初のコンピューターマウス– 1964年
今日知られているマウスは、Bill Englishの支援を受けてDouglas Engelbartが発明し、1970年11月17日に特許を取得しました。これは、人間の知性を高めることを目的とした、大きなプロジェクトの一部だったのです。
Engelbartは、何かを使用して画面上のカーソルを移動して情報ディスプレイと対話する機能が必要でした。ライトペンやジョイスティックなど、すでにさまざまなデバイスが使用されていましたが、もっと効率的なデバイスを探していました。
マウスの最初のプロトタイプは、GUIのウィンドウで使用されました。 「ディスプレイシステムのX-Y位置インジケータ」と呼ばれ、1973年にゼロックスアルトコンピュータシステムで最初に使用されました。
最も人気のあるコンピューターインターフェースデバイスの発明者がマウスの発明に対してロイヤリティを受け取らなかったことは非常におかしなことです。彼はSRIの委託者として特許は取得し、SRIはそれをAppleに約40,000ドルで使用権を与え、結局彼は何も受け取らなかったのです。
4.世界初のタッチスクリーン– 1965年
E.A Johnsonは、「タッチディスプレイ-コンピューター用の新しい入出力デバイス」という記事で、容量性タッチスクリーン(感圧性なし)に関する彼の研究について語っていました。その記事には、現在も使用されているタッチスクリーンの概念を説明する図があります。
数年後、彼は1967年にエルゴノミクスジャーナルに掲載された「タッチディスプレイ:プログラミングされたマンマシンインターフェイス」で写真と図を使用して概念をさらに詳しく説明しました。
このアイデアは、1990年代にイギリスの航空管制官に採用されました。 さらに、最初の抵抗膜方式タッチスクリーンは、1975年に米国特許番号3911215を取得したGeorge SamuelHurst(アメリカの革新者)によって開発されました。
3.世界初の商用パソコン:Programma 101 – 1965年
プログラム101は、基本的な4つの算術関数(加算、減算、乗算除算)と、絶対値、平方根、、小数部を計算できます。メモリレジスタで構成され、16個の条件付きジャンプ命令、英数字プログラミング言語、内部メモリを備えていました。
磁気カードとルーチンは、プログラミングの知識がなくても使用できます。機械がレジと紙の計算機と同様に、プログラムと結果を紙テープのロールに印刷しました。
以前のコンピューターは高価であり、専門家のみが使用できましたがP101は経済的で簡単になりました。価格は32,000ドルで、44,000ユニット以上を販売しました。
2.世界初のオブジェクト指向プログラミング言語:Simula – 1967年
Simulaは、ノルウェーコンピューティングセンターのOle-Johan DahlとKristen Nygaardによって開発されました。 ALGOL 60のプログラミング言語の精神を保っています。 Simulaは、Simula IとSimula 67の2つのシミュレーション言語の名前です。
Simula 67では、オブジェクト、クラス、サブクラス、継承、仮想プロシージャ、コルーチン、ガベージコレクション機能が導入されました。プロセスモデリング、アルゴリズム、VLSI設計、コンピューターグラフィックスなど、幅広いアプリケーションで使用されていました。 Simula 67の概念は、C ++、C#、Pascal、Javaなどで再実装されています。
1.世界初のマイクロプロセッサー:Intel 4004 – 1971年
チップ設計は1970年4月に開始され、1971年1月にFederico Fagginのリーダーシップの下完成しました。人間の親指よりも小さく、クロック速度740 kHzの4ビットレジスタには、10ミクロン間隔の2300トランジスタがありました。
1秒あたり60,000の操作を実行でき、費用は200ドルで、ENIACコンピュータと同じくらいの計算能力を備えています。 Busicom Calculator 141-PFは、マイクロプロセッサを使用した最初の商品です。
Intel 4004は、独立したプログラム、データストレージ(ハーバードアーキテクチャ設計とは異なります)、12ビットアドレス、8ビット命令、、4ビットデータワードを転送するための単一多重化4ビットバスを使用します。 5120ビットのRAM、32768ビットのROMを直接アドレス指定でき、3レベルの深い内部サブルーチンスタックをサポートしていました。