新品互換用パソコン バッテリー、ACアダプタ、ご安心購入!
ノートpcバッテリーの専門店



人気の検索: ADP-18TB | TPC-BA50| FR463

容量 電圧 製品一覧

スペシャル

現代のインターネットを形作る「世界を変えたコード」とは?

世界中で起きた最新の出来事を遠くにいながらすぐに知ることができたり、無限にも等しい膨大な情報の中から自分の目当てのものを簡単に検索して調べたりと、インターネットは今や人間の生活にとってなくてはならないものになっています。そんなインターネットを支える技術の中から、「世界を変えたコード」をニュースメディアのSlate Magazineがまとめています。

バイナリでのプログラミングが始まったのは、近代的なコンピューターが登場するよりもずっと前のことです。1725年、フランス・リヨンで働いていたBasile Bouchonが紙に穴を開けたもので機械を制御するという方法を編み出しました。穴の空いた部分は「1」、穴の空いていない部分は「0」を意味しており、この2進数で織機を制御したそうです。「0」と「1」で機械を制御するという考え方は現代のコードの基礎と何ら変わりないため、コンピューターの存在しない1725年に生まれた穴あきカードが最初のコードと呼ばれています。

世界初のコンピュータープログラマーの1人として知られるクララ・ダン・フォン・ノイマンとロスアラモス国立研究所の研究者であったニコラス・メトロポリスは、ENIACを用いて最初の近代的なコードを実行しました。最初のコードはアドレス可能な読み取り専用メモリから実行された数百の数値命令でした。

プログラミングにはモンテカルロ法を利用することで、原子爆弾設計におけるシミュレーションに用いられる確率分布を繰り返しマッピングしたそうです。

1952年:世界初のコンパイラ

プログラミング言語・COBOLの生みの親としても知られるグレース・ホッパーは、初期のコンピューターでプログラミングを行っていた人物のひとり。ホッパーは第二次世界大戦中に海軍予備役として軍に入隊した際に、軍の上司たちがバイナリコードを理解するのに苦労していた様子を見てきた経験から、プログラミングをより人間の言語で理解できるような簡単なものにすることを目指したそうです。

ホッパーのアイデアは一部の人々から嘲笑されたそうですが、1950年初頭までにコンパイラを考案します。最初のコンパイラは、人間が言語として理解できるようなコードを、コンピューターが直接処理可能な命令セットに変換するというものでした。

その後、ホッパーは同僚と共に世界初の英語に近い表記のデータ処理用プログラミング言語FLOW-MATICを開発しています。ホッパーの生み出したコンパイラについて、Slate Magazineは「コンピューターが単語を処理できるようになった」と記しています。

1961年:世界初のコンピューターゲーム「スペースウォー!」

1961年後半、マサチューセッツ工科大学(MIT)の若い従業員・学生そしてその友人たちによるグループが、PDP-1を利用可能となりました。当時、非軍事コンピューティングにおける最先端のコンピューターであったPDP-1は、12万ドル(記事作成時点のレートで100万ドル:約1億1000万円超)で販売されていた超高級品で、ワード長は18ビット、標準主記憶装置は4Kワード(9Kバイト相当)の容量で、最大64Kワード(144Kバイト)まで拡張可能というコンピューターでした。

学生たちによるグループはプログラミング用のストレージに紙テープを利用し、5カ月かけ、2人のプレイヤーが宇宙船をコントロールする「スペースウォー!」というゲームを作成します。1962年当時のスペースウォー!の映像は以下のムービーで見ることが可能です。

スペースウォー!はコアメモリにプリロードされたPD​​P-1と共にDECにより配布されることとなったため、初期のハッカーコミュニティで急速に広がり、多くのビデオゲームクリエイターに多大な影響を与えたとのこと。記事作成時点でもエミュレーターなどでスペースウォー!がプレイできるほか、コンピュータ歴史博物館に展示されているPDP-1でも定期的に実演が繰り返されているとのこと。

スペースウォー!の開発においてチームを率いたスティーブ・ラッセルは、2018年にスミソニアン博物館で行われたイベントの中で、「ユーザーからの苦情はなく、クラッシュレポートも存在しませんでした。しかし、サポートは今も引き続き利用できます」とコメントしています。

1965:電子メールの起源

1961年、MITのハッカーたちが複数のユーザーが同時に同じコンピューターにログインできるようになるシステム「タイムシェアリングシステム」を開発しました。そして1965年、コーダーたちがタイムシェアリングシステムを利用しているユーザーたちが相互に通信するための方法として、デジタル文書を送信・受信・表示することが可能となるコマンドシステムを作成します。

WHENEVER A(1).E.FENCE.OR.A(2).E.FENCE.OR.A(3).E.FENCEPRFULL.($'R'1INSTRUCTIONS:$)PRFULL.($ '4MAIL NAME1 NAME2 PROB1 PROG1 PROB2 PROG2 ...$)PRFULL.($ WHERE '=NAME1 NAME2'= IS THE FILE TO BE MAILED,$)PRFULL.($ AND '=PROBN PROGN'= ARE DIRECTORIES TO WHICH '8$,1 $IT IS TO BE SENT.'B$)CHNCOM.(0)END OF CONDITIONAL

1969年:アポロ11号の月面モジュールにおけるベイアウトコード
人類初の月面着陸に成功したアポロ11号には、アポロ誘導コンピューター(AGC)と呼ばれるアポロ宇宙船の全航行機能を自動制御し、宇宙飛行士が飛行情報を確認・修正するために使われたコンピューターが搭載されていました。
AGCは限られた電力とストレージスペースの中での動作を要求されたため、常に最も重要なタスクに集中できるようにする必要がありました。AGCのソフトウェアを開発したチームは、計画できない事態が発生する可能性を考慮して、「BAILOUT」というコードを作成します。これはAGCがスペース不足もしくはオーバーフローの危機にさらされた場合、重要なデータと船体の操作だけは維持できるように、重要性の低いデータと操作をスケジュールするというものだそうです。
アポロ月着陸船の「イーグル」が月面に向かって降下していく際、イーグル内のAGCが動作不良となり、「1202」警報を鳴らしました。この警報の理由はニール・アームストロング船長などにはすぐに認識されなかったものの、ミッションコントロールにおけるコンピューターの専門家たちは、AGCに設定したBAILOUTが正常に作動したことを理解したそうです。つまりは優先度の低いタスクを破棄し、重要な船体制御などのタスクを再開したため、月面降下は問題なく行えたというわけです。

POODOO INHINT CA Q TS ALMCADR TC BANKCALL CADR VAC5STOR # STORE ERASABLES FOR DEBUGGING PURPOSES. INDEX ALMCADR CAF 0ABORT2 TC BORTENTOCT77770 OCT 77770 # DONT MOVE CA V37FLBIT # IS AVERAGE G ON MASK FLAGWRD7 CCS A TC WHIMPER -1 # YES. DONT DO POODOO. DO BAILOUT. TC DOWNFLAG ADRES STATEFLG TC DOWNFLAG ADRES REINTFLG TC DOWNFLAG ADRES NODOFLAG TC BANKCALL CADR MR.KLEAN TC WHIMPER

1972年:Hello, world!
新しいプログラミング言語を学ぶ際、最初に行うことはコンピューター上に「Hello, world!」というフレーズを表示させることです。このフレーズは1974年にベル研究所がまとめた「Programming in C A Tutorial」というプログラミングの教本に書かれているフレーズですが、それより前の1972年に書かれた別の教本にも書かれているため、これが起源なのではないかと言われています。

main( ) { printf("hello, world\n"); }

1988年:世界初のマルウェアが登場

1988年、当時23歳だったアメリカ人計算機科学者のロバート・T・モリスが、「モリス・ワーム」と呼ばれる世界初のマルウェアを開発しました。このワームは「インターネット上で最初に登場した攻撃」とも呼ばれ、インターネット上に接続されたコンピューターを攻撃することに使用され、多くの損害を生み出したそうです。この際、ニューヨークタイムズは初めて新聞の紙面に「インターネット」という文字を載せたそうです。

当時、プログラミングに精通していた人物でさえ、モリス・ワームの拡散範囲の広さには非常に驚いたとのこと。モリスはワームを使って攻撃を仕掛けるつもりはなかったとしていますが、世界で初めて「コンピューター詐欺と濫用に関する法律(Computer Fraud and Abuse Act)」に基づき起訴された最初の人物となります。3年間の保護観察を宣告されたのち、モリスはYコンビネータの共同設立者となり、MITのコンピューターサイエンス部門の准教授となっています。

なお、モリスの開発した世界初のコンピューターワームである「モリス・ワーム」については、以下の記事にもまとめられています。