Bug一詞指在電腦系統(tǒng)或程序中,隱藏著的一些未被發(fā)現(xiàn)的缺陷或問題。但是Bug一詞是如何由來的呢,昨天翻了翻《軟件調(diào)試》發(fā)現(xiàn)里面記述了這樣一個有趣的故事
時間是在20世紀(jì)40年代,當(dāng)時的電子計算機都還非常龐大,數(shù)量也非常少,主要用在軍事方面。1944年制造完成的Mark I,1946年2月開始運行的ENIAC和1947年完成的Mark II是其中赫赫有名的幾臺,Mark I是由哈佛大學(xué)的Howard Aiken教授設(shè)計,IBM公司制造的,Mark II是由美國海軍出資制造的。與使用電子管制造的ENIAC不同,Mark I和Mark II主要是使用開關(guān)和繼電器制造的。另外,它們都是從紙帶或磁帶上讀取指令并執(zhí)行的,因此,它們不屬于從內(nèi)存讀取和執(zhí)行指令的存儲程序計算機(stored-program computer)。
1947年9月9日,當(dāng)人們測試Mark II計算機時,它突然發(fā)生了故障。經(jīng)過幾個小時的檢查后,工作人員發(fā)現(xiàn)了一只飛蛾被打死在面板F的第70號繼電器中。當(dāng)把這個飛蛾取出后,機器便恢復(fù)了正常。當(dāng)時為Mark II計算機工作的著名女科學(xué)家Grace Hopper將這只飛蛾粘帖到當(dāng)天的工作手冊中,并在上面加了一行注釋,“First actual case of bug being found”,當(dāng)時的時間是15:45.隨著這個故事的廣為流傳,越來越多的人開始使用Bug一詞來指代計算機中的設(shè)計錯誤,并把Grace Hopper上登記的那只飛蛾看作是計算機里上第一個被記錄在文檔中的Bug.