1726264107
2024-09-13 18:00:03
今日のデジタル世界では、Java、JavaScript、Python、その他のプログラミング言語のおかげで、ほぼ誰でも簡単にモバイル アプリを作成したり、ソフトウェアを記述したりできます。
しかし、昔からそうだったわけではありません。コンピューターの主な言語はバイナリ コードであるため、初期のプログラマーはパンチ カードを使用してコンピューターに実行すべきタスクを指示していました。各穴は 1 つのバイナリ ディジットを表していました。
状況は 1952 年に A-0 コンパイラによって変わりました。A-0 コンパイラは、英語などの高級言語を機械が読み取り可能なバイナリ コードに自動的に変換する一連の仕様です。
現在 IEEE マイルストーンとなっているこのコンパイラは、フィラデルフィアの Eckert-Mauchly Computer Corp. (現在は Unisys の一部) で上級数学者として働いていた Grace Hopper 氏によって開発されました。
IEEE フェローのイノベーションにより、プログラマーは英語のコマンドを使用してコードをより速く、より簡単に記述できるようになりました。しかし、ペンシルベニア エンジニアリング トゥデイの記事によると、彼女にとって最も重要な成果は、それが現代のプログラミング言語の開発に与えた影響であり、誰もがコードを記述しやすくなったことです。
A-0 コンパイラが IEEE マイルストーンとして表彰される式典は、5 月 7 日にフィラデルフィアのペンシルバニア大学で開催されました。ここは、Eckert-Mauchly Computer Corp. が創業した場所です。
「この画期的な出来事は、コンピュータを利用してプログラミングの面倒な部分を自動化する第一歩を祝うものです」と電気システム、工学、コンピュータサイエンスの教授であるアンドレ・デホン氏は落成式で述べた。
パンチカードシステムの廃止
コンピューターをプログラムするために、初期の技術者は、2進数で構成される機械語を人間が読める形で記述するアセンブリ言語でタスクを書きました。その後、アセンブリ言語を手動で機械語に変換し、2進数を表す穴をカードに打ち込んだと、ある研究者は述べています。 中くらいこの方法についての記事。カードは機械に通され、穴を読み取り、データをコンピューターに入力します。
パンチカードシステムは手間がかかり、作業を完了するのに数日かかることもありました。カードは、角が曲がっているなどのわずかな欠陥があると使用できませんでした。また、この方法は人為的ミスが発生するリスクも高かったです。
ペンシルバニア大学で電子数値積分器およびコンピュータ (ENIAC) の開発を指揮した後、コンピュータ科学者の J. プレスパー エッカートとジョン W. モークリーは、パンチ カードの代替品の開発に着手しました。ペンシルバニア ブック センターの記事によると、ENIAC は第二次世界大戦中に米国の砲兵の精度を向上させるために構築されましたが、2 人は商業用途のコンピュータを開発したいと考えていました。
彼らが設計した機械は、世界初の大規模電子コンピュータ、Universal Automatic、または UNIVAC I として知られていました。ホッパーはその開発チームに所属していました。
UNIVAC I は 6,103 本の真空管を使用し、33 平方メートルの部屋を占めました。このマシンにはメモリ ユニットがありました。パンチ カードの代わりに、コンピューターは磁気テープを使用してデータを入力しました。オーディオ、ビデオ、および書き込みデータを保存できるテープは、最大 457 メートルの長さでした。ペンシルバニア ブック センターの記事によると、以前のコンピューターとは異なり、UNIVAC I にはキーボードがあり、オペレーターがコマンドを入力できました。
「このマイルストーンは、コンピューターを活用して、プログラミングの面倒な部分を自動化する第一歩を祝うものです。」 —アンドレ・デホン
しかし、新しいプログラムを実行するには、技術者が依然として手動でコンピューターに指示を入力する必要がありました。
この時間のかかるプロセスはエラーを招いた。「プログラマーは下手なコピーライターだからだ」とホッパー氏は計算機協会でのスピーチで述べた。「4 がスペース記号のデルタや A に変わることが何度もあったのは驚きだった。B が 13 に変わることさえあった」
Hidden Heroes の記事によると、ホッパー氏はプログラミングを簡素化するアイデアを思いついた。コンピューターに英語を機械語に変換させるというアイデアだ。
彼女は、コンピュータ科学者ベティ・ホルバートンのソート/マージ・ジェネレータとモークリーのショート・コードに触発された。ホルバートンは、数秒で砲弾の軌道を計算するようにENIACをプログラムした6人の女性の1人で、ホッパーとともにUNIVAC Iに取り組んだ。1951年にUNIVAC I用に発明された彼女のソート/マージ・プログラムは、磁気テープに保存された大きなデータ・ファイルを処理した。スタンフォード大学で行われたプログラミング言語に関するプレゼンテーションによると、ホッパーはソート/マージ・プログラムを、プログラマーの指示なしに自動的にオーバーレイを使用するという点で仮想メモリの最初のバージョンと定義した。1940年代に開発されたショート・コードにより、技術者は機械語命令に直接対応する短い英語の単語の並びを使ってプログラムを書くことができた。ショート・コードは、人間が読めるコードと機械が実行可能な命令の間の溝を埋めた。
「コンピュータを使って実際にプログラムを書くことができることを私たちに教えてくれた最初のステップは、ソート/マージ ジェネレータだったと思います」とホッパー氏はプレゼンテーションで述べた。「そしてショート コードは、プログラマーに元のマシン コードとはまったく似ていない言語でプログラムを書く実際の力を与えるものへと向かう最初のステップでした。」
IEEE フェローの Grace Hopper が Universal Automatic (UNIVAC I) に呼び出し番号を入力し、コンピューターが正しい命令を見つけて完了できるようにしています。A-0 コンパイラーは、英語の命令を機械可読なバイナリ コードに変換します。コンピュータ歴史博物館
より簡単、より速く、より正確なプログラミング
ホッパー氏は、人間がコンピューター言語を話すのではなく、コンピューターが人間のような言語を話すべきだと考え、プログラマーが英語を使って特定のコードを呼び出す方法を考え始めたと、ある研究者は述べている。 ITプロフェッショナル プロフィール。
しかし、彼女には、コンピューターが参照するための頻繁に使用される命令のライブラリと、英語を機械語に変換するシステムが必要でした。そうすることで、コンピューターは完了すべきタスクを理解できるようになります。
そのようなライブラリは存在しなかったため、ホッパーは独自のライブラリを構築しました。これには、彼女がサブルーチンと呼ぶタスクで頻繁に使用される命令が保存されたテープが含まれていました。各テープには 1 つのサブルーチンが保存され、UNIVAC I が正しいテープを見つけられるように 3 つの数字のコール サインが割り当てられました。スタンフォード大学のプレゼンテーションによると、数字は 3 つのメモリ アドレスのセットを表し、1 つはサブルーチンのメモリ位置、もう 1 つはデータのメモリ位置、3 つ目は出力位置です。
「私がしなければならなかったのは、一連の請求記号を書き留めて、コンピューターにテープ上でそれらを見つけさせて、追加作業を行わせることだけでした」と彼女はコンピューティング歴史センターの記事で述べている。「これが最初のコンパイラでした。」
このシステムは、コードが 1 つの言語で記述され、その後機械語に「コンパイル」されたため、A-0 コンパイラと呼ばれました。
Cockroach Labs の記事によると、以前は手作業で 1 か月かかっていたコーディングが、今では 5 分で完了できるようになったそうです。
ホッパー氏はA-0をエッカート・モークリー・コンピュータ社の幹部に披露した。しかし記事によると、幹部らは興奮するどころか、コンピュータが独自のプログラムを書くことができるとは信じられないと言ったという。
「私は稼働中のコンパイラを持っていましたが、誰も触ろうとしませんでした。なぜなら、コンピュータは計算しかできず、プログラムすることはできないと慎重に言われたからです」とホッパー氏は語った。「人々に試してもらうのは、売り込みの仕事でした。新しいアイデアは何でも、人々は変化を嫌うので、外に出てアイデアを売り込む必要があると思います。」
同社の経営陣が A-0 を承認するまでに 2 年かかりました。
1954 年、ホッパーは UNIVAC 部門の自動プログラミング担当ディレクターに昇進しました。彼女は、最初の英語データ処理コンパイラである Flow-Matic を含む、最初のコンパイラベースのプログラミング言語を作成しました。これは UNIVAC I および II マシンのプログラミングに使用されました。
ホッパー氏は、最も初期の標準化されたコンピュータ言語の 1 つである COBOL の開発にも携わりました。この言語により、コンピュータは数字だけでなく単語にも応答できるようになり、現在でもビジネス、金融、管理システムで使用されています。ホッパー氏の Flow-Matic は COBOL の基礎となり、その最初の仕様は 1959 年に公開されました。
A-0 を称える銘板が現在ペンシルバニア大学に展示されています。そこには次のように書かれています。
1951 年から 1952 年にかけて、グレース ホッパーはリンカー/ローダーとして機能する一連の仕様である A-0 コンパイラを発明しました。これは、自動プログラミングの先駆的な成果であると同時に、サブルーチン管理の先駆的なユーティリティ プログラムでもありました。A-0 コンパイラは、算術およびビジネス プログラミング言語の開発に影響を与えました。これが COBOL (Common Business-Oriented Language) につながり、ビジネス アプリケーションの主要な高級言語となりました。
この指名はIEEEフィラデルフィア支部が後援した。
IEEE 歴史センターによって管理され、寄付者によってサポートされているマイルストーン プログラムは、世界中の優れた技術開発を表彰します。
#パンチカードからPythonへ