コンピューターにおけるbugは虫である

コンピューターのエラーがなぜbugと呼ばれるようになったのか、最初のbugについて説明する。

ソフトウェアバグとは

bugは英語で虫という意味である。ソフトウェアでは、コンピュータープログラムに誤りがあるという意味で使われる。

バグは次のように理解できる。

  1. プログラムがプログラマーの意図どおりに動かない。
  2. プログラマーの意図が、利用者の普通で合理的な期待を満たさない。

デバッグとは

バグが発生したら、それを見つけて修正しなければならない。このように誤ったプログラムを修正する作業をデバッグという。deには取り除くという意味がある。

最初のバグ

最初のバグは、COBOLの開発者の一人であるGrace Hopperに関係している。1945年9月9日、Mark IIというコンピューターの回路に蛾が入り、異常動作を起こした。このときのバグは文字どおりコンピューターの中に入った虫だった。

最初のバグ

この出来事以降、ソフトウェアで発生する問題をバグと呼ぶようになった。

Grace Hopper

Grace Brewster Murray Hopper(1906年12月9日 - 1992年1月1日)は、アメリカのコンピューター科学者であり、アメリカ海軍の少将である。商業的に大きな成功を収めたプログラミング言語COBOLの誕生と普及に重要な役割を果たし、コンピューターにおける「bug」という言葉を広めた人物でもある。

Grace Brewster Murray Hopper

Hopperは幼いころから機械に強い関心を持っていた。Vassar Collegeで数学、物理学、工学を学び、Yaleで数学博士号を取得した。第二次世界大戦中に海軍へ入り、Harvard Mark IやMark IIなど初期のコンピューターに関わった。

戦後はシステムエンジニアとして働き、最初期のコンパイラの一つであるA-0を開発した。A-2やFLOW-MATICなどの成果は、後のCOBOL開発の基礎となった。

バグが発生する理由

バグは小さなタイプミス、見落とした特殊ケース、システム上の制約、ハードウェアの劣化や故障によって発生する。重大なシステムでは、バグが人命や社会に大きな影響を及ぼすこともある。

バグを防ぐために

プログラムが正常に動作するかを確認する現実的な方法はテストである。大規模なプログラムを完全にデバッグすることは難しいため、デバッグは開発において非常に重要な作業である。

バグのないプログラムは存在するか

ハードウェアもソフトウェアも人間が設計する以上、完全にバグのない製品はないと考えてよい。バグは減らせるが、まったく存在しないプログラムは理想にすぎない。