Grace Hopper COBOL/Compiler/Bug 1944-1992(グレースホッパー)
Grace Brewster Murray Hopper 1906-1992 米国海軍少将+計算機科学者+Yale PhD数学 1934。Vassar College教授→US Navy WAVES Reserve 1943 Lieutenant→Harvard Mark I Computer Howard Aiken研究室1944配属 (Manhattan Project計算+Atomic Bomb弾道計算)・Mark II 1947/9/9実機 First Recorded Computer Bug (蛾Moth・Logbook貼付・「First Actual case of bug being found」記録・Bug用語起源・Smithsonian Museum現存)・A-0 Compiler 1952 (世界初 Compiler・Linker)+B-0 FLOW-MATIC 1955+UNIVAC・FLOW-MATIC→COBOL Common Business Oriented Language 1959 (Hopper主導・Conference on Data Systems Languages CODASYL・「Grandmother of COBOL」)・US Navy昇進 1973 Captain→1985 Rear Admiral (海軍少将)→1986/8/14退役79歳・Yale PhD 1934 (Math)・国家技術功績賞 1991+Presidential Medal of Freedom 2016 Obama授与・USS Hopper Destroyer 1996命名・Hopper Conference 計算機科学Women最大規模・¥0 公的功績、2026年Hopper名COBOLレガシー継続・US Navy Hopper Class駆逐艦現役。
概要
Grace Brewster Murray Hopper(1906–1992)は、米国海軍少将であり、計算機科学の先駆者です。彼女は1944年にマニュハン・プロジェクトの計算機Mark Iに配属され、1947年にMark IIで「最初の実際のバグ」が発見されたとされる蛾(moth)を記録しました。この事件は「バグ」という用語の起源として広く知られています。1952年に彼女は世界初のコンパイラであるA‑0 Compilerを開発し、1955年にFLOW‑MATICを発表。1959年にはCOBOL(Common Business Oriented Language)を主導し、ビジネス向けプログラミング言語の基盤を築きました。彼女の功績は1991年に国家技術功績賞、2016年に大統領自由勲章で称えられ、1996年にはUSS Hopperという駆逐艦が彼女の名前で名付けられました。
主な特徴・仕組み
| 項目 | 内容 |
|---|---|
| 初期コンパイラ | A‑0 Compiler(1952) → 文字列を機械語に変換する最初の自動化ツール |
| 中間言語 | FLOW‑MATIC(1955) → 文字ベースの命令を機械語に変換するパイプライン |
| ビジネス言語 | COBOL(1959) → 可読性重視、データ処理に最適化 |
| 主要ハードウェア | Mark I(1944) Mark II(1947) UNIVAC I(1951) IBM 704(1954) IBM 7090(1959) |
| データモデル | 文字列と数値の混在を許容 レコード指向のデータ構造 |
| 制御構造 | IF‑THEN‑ELSE、PERFORM(ループ)など |
| エラーハンドリング | 例外処理は後世に発展 初期は単純なエラーメッセージ |
主要ハードウェアの数値スペック(例)
- Mark I:1,000 真空管、1 MHz クロック、1 KB RAM
- Mark II:2,000 真空管、1.5 MHz クロック、4 KB RAM
- UNIVAC I:1,000 真空管、1 MHz クロック、1 MB メモリ(実際は1 KB RAM + 1 MB ディスク)
- IBM 704:1,000 真空管、1.5 MHz クロック、32‑bit ワード
- IBM 7090:2,000 真空管、2 MHz クロック、64‑bit ワード
- IBM 360/370:1,000 真空管、3 MHz クロック、32‑bit ワード、1 GB 以上のメモリを搭載可能
具体例・対応製品(テーブル必須)
| 製品名 | 開発年 | 主な用途 | 代表的な実装例 |
|---|---|---|---|
| A‑0 Compiler | 1952 | 初期コンパイラ | 1944年のMark Iでの実装 |
| FLOW‑MATIC | 1955 | 中間言語 | UNIVAC I上でのデータ処理 |
| COBOL | 1959 | ビジネスロジック | IBM 360/370上の金融システム |
| UNIVAC I | 1951 | 大規模データ処理 | 1952年の国勢調査 |
| IBM 704 | 1954 | 科学計算 | 1955年の物理シミュレーション |
| IBM 7090 | 1959 | 高速科学計算 | 1960年の宇宙開発計算 |
| IBM 360/370 | 1964 | 汎用計算 | 1970年の保険会社システム |
| IBM 1401 | 1961 | ビジネスデータ処理 | 1965年の製造業 |
| IBM 1620 | 1959 | 教育用計算機 | 1960年の大学講義 |
| IBM 1130 | 1965 | 小規模データ処理 | 1970年の地方自治体 |
選び方・注意点
- 既存コードの互換性
- COBOLは長期運用が前提で、既存のメインフレームコードが多い。新規開発では既存コードとのインタフェースを考慮する必要がある。
- ハードウェア依存
- 旧式のIBM 360/370向けに最適化されたコンパイラは、現代のx86やARM環境では動作しない。移行ツールを利用するか、仮想化環境を構築する。
- セキュリティ
- COBOLは古い構文であるため、最新の暗号化ライブラリや認証機構を組み込む際は外部ライブラリとの連携が必須。
- 開発者コミュニティ
- 2025年現在、COBOL開発者は約30,000人と推定。コミュニティの活発度は選定時の重要指標。
- ライセンス
- IBM 360/370向けのコンパイラは商用ライセンスが必要。オープンソースのGnuCOBOLは無料だが、商用サポートは別途必要。
関連用語との違い
| 用語 | 定義 | 主要差異 |
|---|---|---|
| バグ(bug) | 物理的な蛾が回路に落ちた事例 | 具体的な物理現象に起因 |
| コンパイラ(compiler) | ソースコードを機械語に変換するプログラム | HopperのA‑0は最初の実装例 |
| COBOL | ビジネス向け高水準言語 | Hopperが主導した言語 |
| FLOW‑MATIC | 文字ベースの中間言語 | COBOL以前のデータ処理言語 |
| A‑0 Compiler | 世界初のコンパイラ | Hopperが開発した実装例 |
よくある質問(FAQ)
Q1. Grace Hopperのバグは実際に蛾だったのか?
A1. 1944年のMark Iのログには「A moth was found in the relay and was removed.」と記載されており、蛾が原因でリレーの接点が不良になったとされています。これが「バグ」という言葉の起源とされています。
Q2. COBOLは今も使われているのか?
A2. はい。特に金融、保険、政府機関で約1,500万行のCOBOLコードが稼働しています。2025年の調査では、COBOLのメンテナンスコストが年間約1億ドルと報告されています。
Q3. Hopperのコンパイラはどのように進化したか?
A3. A‑0は単純な文字列置換に留まっていたが、FLOW‑MATICで中間表現を導入。COBOLでは構文解析と最適化が実装され、後のコンパイラ(GnuCOBOL、IBM Enterprise COBOL)へと発展しました。
まとめ
Grace Hopperは、コンピュータ史における多岐にわたる貢献を残しました。彼女が発見した蛾のバグは、ソフトウェア開発の用語として定着し、A‑0 Compilerはコンパイラ技術の礎を築きました。さらに、FLOW‑MATICとCOBOLはビジネス向けプログラミングの標準を確立し、今日でも金融・保険・政府機関で不可欠な技術として残っています。2025–2026年に入っても、COBOLのモダナイズプロジェクトやAIとの連携が進められ、彼女の遺産は新たな形で継承されています。