什么是“计算机错误”,该术语从何而来?

错误是计算机软件中的无意错误

“计算机错误”或“软件错误”是指计算机软件或硬件中无意的编程错误或缺陷的术语。错误源于硬件设计中的人为错误或用于创建计算机应用程序、固件或操作系统的软件工具链中的某个地方。

当程序员在编写软件时犯了错误,或者编写了有效但具有程序员未预见到的无意后果的代码时,就会产生软件错误。从软件中删除错误称为“调试”。

什么是“计算机错误”,该术语从何而来?
在当今软件驱动的世界中,错误是一件严肃的事情。大约 20 年前,美国国家标准与技术研究所估计,软件错误每年给美国经济造成近 600 亿美元的损失(约占 2002 年 GDP 的 0.6%)——此后这个数字可能会增加。虽然准确量化错误的负面影响很困难,但很容易想象故障软件如何影响生产力。它甚至可能使交通领域的生命处于危险之中,或危及 发电厂等重要基础设施

为什么我们称它们为错误?

“错误”一词早于计算机的发明,我们实际上并不知道最初是谁创造了“错误”一词来指代工程缺陷。在文字记载中,历史学家最早可以追溯到 1870 年代的托马斯·爱迪生。

什么是“计算机错误”,该术语从何而来?
爱迪生在他的个人笔记和信件中使用这个词来表示需要解决的难题或需要修复的工程缺陷。他甚至开玩笑说这个词与昆虫有关,在1878 年的一封信中写道

“你说的有一部分是正确的,我确实在我的设备中发现了一个‘错误’,但不是在电话中。它属于“callbellum”属。昆虫似乎在电话的所有呼叫装置中找到了存在的条件。”

虽然有些人认为爱迪生的例子意味着他创造了“bug”这个词,但它可能起源于其他人更早,并且他只是在他的工程朋友和同事中普及了这个词。《牛津英语词典》引用了 1889 年与爱迪生相关的一个例子,该例子将虫子描述为昆虫爬入设备并使其发生故障的隐喻,表明一个真正的虫子这样做可能最初启发了这个词,类似于术语“美中不足”

什么是“计算机错误”,该术语从何而来?
1843 年银版照片中的 Ada Lovelace。
先把“bug”这个词放在一边,历史上第一个意识到软件可能会因编程错误而发生故障的人是 Ada Lovelace。她写了一篇关于这个问题在1843年在她的解说查尔斯·巴贝奇的归途分析引擎

“对此,可以回答说,必须同样执行分析过程,以便为分析引擎提供必要的操作数据;这也可能是一个可能的错误来源。假设实际机制在其过程中没有错误,卡片可能会给它错误的命令。”

在这句话中,Lovelace 指的是实际计算机制在处理数据的方式上没有错误,但规定人类提供给它的数据(当时在卡片上编程)可能会给机器错误的指令和从而产生错误的结果。

格蕾丝·霍珀的飞蛾怎么样?

几十年来,书籍、杂志和网站都错误地报道称,“bug”一词是由传奇计算机科学家Grace Hopper创造的,当时一只飞蛾飞入了哈佛 Mark II 计算机的继电器并导致其发生故障。随着故事的发展,她随后将飞蛾记录在日志中并写下了历史记录:“第一个发现错误的实际案例。”

什么是“计算机错误”,该术语从何而来?
虽然 1947 年确实有一只飞蛾飞入了 Mark II,但它并不是“错误”或“调试”这两个词的灵感来源,这两个词都早于事件发生。此外,并不完全清楚飞蛾是否确实导致了计算机故障,只是在他们修复其他缺陷时这是一个有趣的发现。霍珀在1968 年 11 月的一次广泛引用的采访中讲述了这个故事,从而使这个故事成名:

“当我们在调试Mark II的,它瓦特为过的另一座建筑,窗户没有幕布上有S和我们的工作就可以了,在晚上,当然,所有的错误在S WO RLD凸轮ê英寸有一天晚上,她昏倒了,我们去找虫子,在一个被打死的继电器里发现了一只真正的大飞蛾,翼展大约四英寸,我们把它拿出来放进去日志和透明胶带粘在上面,据所知,那仍然在哈佛的历史日志中(我们在com 中发现了一个真正的错误推杆)。”

霍珀觉得这个故事很有趣,因为在经常寻找计算机中的错误(如硬件和软件缺陷)之后,她的团队终于在计算机中发现了一只真正的昆虫。因此题词是“发现错误的第一个实际案例”。

(顺便说一句,Hopper 将 Mark IV 飞蛾描述为“被活活打死”,这可能是因为被计算机机电继电器的运动缠住造成的损坏,这表明计算机在飞蛾在里面时继续运行。 )

什么是“计算机错误”,该术语从何而来?
与这些类似的计算机继电器(见 IBM 手册)杀死了可怜的 Mark II 蛾。
历史学家不知道这是霍珀的日志,还是实际上是谁写的条目,但今天,哈佛 Mark II 日志位于华盛顿特区史密森尼的美国国家历史博物馆

虽然 Mark II 蛾(让我们称他为“Mark”)不是第一个计算机错误,但它仍然是所有程序员都在努力解决的一个非常真实和困难的问题的物理和文化象征,这是我们所有人都会遇到的问题处理未来几年。

正文完