垃圾进，垃圾出

垃圾进，垃圾出（，缩写：），或译为废料进，废品出，是计算机科学与信息通信技术领域的一句习语，说明了如果将错误的、无意义的数据输入计算机系统，计算机自然也一定会输出错误、无意义的结果。同样的原则在计算机外的其他领域也有体现。

 历史 
本习语产生于计算机的早期时代，1957年11月10日，一篇报纸文章介绍了美国陆军的数学家所做的计算机工作，其中一名军队专家威廉·D·梅林解释说，计算机自己不能思考，因此输入粗劣的数据将不可避免地产生错误的输出。甚至早在十九世纪，计算机的先驱查尔斯·巴贝奇就已经意识到了这条编程的基本原则：

之后，英国海上事故调查局也得到了相似的结论：



本习语可能是从先进先出和后进先出这两个术语中派生出来的。

 例子 

 数字化 
将低质量的老旧模拟录音或视频数字化，是清理信号、改善质量的第一步，然而数字化的过程本身并不能改善质量。原始模拟信号中录制的瑕疵会原封不动地保留下来。

 统计学 
在统计学中，如果分析的原始数据是错误的、不准确的，那么统计的结论也就是不可信的。

 编程语言 
有些编程语言，主要是动态类型的编程语言，对待调用函数时参数的类型和数值的正确性采取无所谓的态度。比如JavaScript函数parseInt。当输入无意参数时，比如 parseInt("4个人去喝酒", "哈哈哈～")，会得到返回值「4」，其逻辑是尽量从垃圾输入中提取看上去说得过去的信息，哪怕输出的是无意义信息，也不愿报错。这种设计理念，就被称作「垃圾进，垃圾出」。

通常而言，垃圾进垃圾出的语言设计理念被认为是贬义的，因为不报错就等于悄悄出错，这导致计算错误或者被忽视，或者在其后的计算中引起连锁反应，前者使得错误本身难以发现，后者使得错误根源难以定位。及时报错的处理方式是受到学术和工业界广泛认可的设计思路。现代语言设计者和委员会，包含维护Javascript的委员会TC39本身都在尽可能的消除这种设计。

 参见 
 先进先出
 先进不出
 抽象機器
 算法导论
 计算理论
 可计算性理论
 計算複雜性理論
 高级综合
 幻觉 (人工智能)

 参考文献 

Category:计算机行话
Category:计算机幽默
Category:技术危害