今回のテーマ
みなさん、こんにちは!
デジタルステーション習志野スタッフの小島です。
今日はプログラミングやソフトウェアでよく言われる「バグ」とは何なのかを説明したいと思います。
発端
本記事作成の発端は授業中の生徒のふとした疑問です。
最初、「バグってプログラム中にある小さい間違いだから虫みたいってことなのかな」と推測していました。
確かにバグはプログラムの些細な間違いであることが多いため、的を射た考察だと思いました。
ですが、その由来は意外にもコンピュータよりも古いと云われています。
バグった?
バグとは?
コンピュータにおけるバグ(英:Bug)とは、プログラムコード中に含まれる誤植や設計ミスなどのことです。
そしてそれらの誤りから処理が正常に動作しなかったり、動作が不安定になることを俗に「バグった」と呼称します。
(※以降では混同を防ぐために先のプログラム中の誤りを「バグ」、本来の虫を表す「バグ」の場合は「虫」と表記しています。)
バグの種類
バグにも種類が存在します。
ただ単純にスペルを間違えてしまった場合と、想定した処理を正しくプログラミングできていない場合です。
後者について、例えばおつりを計算する処理で引き算ではなく足し算をしてしまうコードは処理を正しく書けていないのでバグとなります。
ただし厳密な定義の分類はなく、あくまでも「バグ」はプログラム内にある間違いとして一般に用いられます。
バグの由来
バグの意味
バグはBugというスペルですが、この言葉は中期英語では bugge(悩ますもの)+budde(甲虫)であるとされます。[1]
古くには1878年の手紙の中には既に機械の不具合を示す言葉として「bug」が用いられていたと云います。[2]
そして現代では「bug」は成虫、プログラム上の誤り、そして悩ましいものといった意味があるとされます。
本物のバグ?
バグという言葉が上記のプログラム上の誤りとして使われるようになったのは実際にはあとになってからです。
最初は俗語や専門用語としてコンピュータや計算機の研究者や開発者間のみで使われたそうです。
しかし、ある日ひとりの研究者が実験中に機械がどうしても動かずに悩んでいたところ機器に挟まった1匹の蛾が原因だったそうです。
この話は、当時の研究者であるグレース・ホッパー(ハーバード マークIの最初のプログラマーの一人、COBOLの開発者)のお気に入りのエピソードのようで、その記録と蛾は今も彼女の日記に残されています。[3]
まとめ
今回はバグについて説明しました。
プログラムが自身の思い通りに動作しないと悩ましい気持ちになりますよね...
でも、そんな時は諦めずに、どうして動かないのかを誰かに相談したり調べてみたりして、落ち着いて対処していこう!!
問題!!
バグはどこだ!?
以下のプログラムはPythonの「引数として入れた数字からバッグの購入金額を求める関数」です。
ですが、なぜか動きません。さて、バグはどこでしょう?
デジタルステーション習志野
〒274-0063 船橋市習志野台4-1-7 習志野駅前郵便局2F