1950年代初頭、UNIVACコンピュータ用の新しいプログラムを書くことは、毎回ゼロから同じ共通サブルーチンを生のマシンレベルのバイナリで手作業でコーディングすることを意味していた。なぜなら、コンピュータ科学者やエンジニアの間での支配的な合意は、コンピュータは本質的に算術機械であり、計算はできても、高水準の記号命令を自力で追従したり翻訳したりすることはできないというものだったからである。この前提は、誰かが擁護しなければならない明文化された方針ではなく、コンピュータに何ができて何ができないかについての自明の事実として単に受け入れられていた。

レミントン・ランドのUNIVAC部門で働いていたグレース・ホッパーは、この分野の前提が誤っていると信じ、動作する翻訳器A-0システムを構築した。これによりプログラマは、毎回完全なバイナリを打ち直す代わりに、短いコードで再利用可能な既存のサブルーチンを参照できるようになった。これは、コンピュータが実際に高水準命令を翻訳して実行できることを技術的に実証するものだった。

ホッパーは何年にもわたり同じデモを繰り返し行い、そのカテゴリー的な信念そのものを標的にした。十分な数の人々の考えが変わり、採用が可能になるまで続けた。

一度のデモではカテゴリー的な前提を覆すことはできない。人々はそれを理屈づけて片付けてしまう。

繰り返しの露出により、懐疑論者には自分のメンタルモデルを更新する複数の機会が与えられる。

説得は技術の機能だけでなく、根底にある信念を標的にした。

十分な数の信念が変わると、コンパイラは標準的な慣行として受け入れられるようになった。

解決策が機能しても分野の前提と矛盾する場合、一度証明するだけでなく、前提が変わるまで証明を繰り返すこと。

ホッパーの持続的な説得の努力は最終的に成功し、彼女が開拓したコンパイラの概念は、その後のFLOW-MATICの研究、そしてビジネスコンピューティングの歴史で最も広く使われたプログラミング言語の一つであるCOBOLの最終的な開発へと直接つながった。これにより、コンパイラと高水準プログラミング言語は、拒絶された珍品ではなく標準的な慣行として確立された。

出典をたどる

出典

  1. A-0 System Wikipedia · en.wikipedia.org
  2. Milestone-Proposal: Grace Hopper's Compiler and Programming Language Work, 1952-1959 IEEE Milestones Wiki · ieeemilestones.ethw.org
  3. The Woman Who Taught Computers English Missed History · missedhistory.com