专栏名称: 悦智网
悦智网依托国内外独享的科技咨询资源,分享最新的行业技术评论,实时发布国内外最新研究成果,打造技术成果的专业交易平台,促进科技成果的需求转化。
目录
相关文章推荐
河北新闻广播  ·  一个容易得脂肪肝的习惯,你可能天天在重复 ·  昨天  
河北交通广播  ·  六小龄童发文悼念!老戏骨因病去世 ·  昨天  
河北交通广播  ·  优化调整!包括石家庄→ ·  2 天前  
河北新闻广播  ·  河北省教育厅最新通知 ·  2 天前  
51好读  ›  专栏  ›  悦智网

写代码也是一份人命关天的工作:盘点改变世界的那些代码

悦智网  · 公众号  ·  · 2019-12-02 15:30

正文

请到「今天看啥」查看全文



Come on,电子邮件来了!

阿波罗 11 号登月舱救援代码(1969 年)

防止登月舱计算机在太空中空间耗尽的代码

Hello, World!(1972 年或更早)

引领一代又一代人打开编程大门的代码

当你坐下来学习一种新的编程语言时,教程要求你做的第一件事就是让计算机显示「Hello,world!」。也许最著名的早期示例来自贝尔实验室的「C—A 编程教程」。该教程写于 1974 年,尽管在 1972 年的手册中也发现了另一种更早的语言 B。
「Hello,world!」这是极好的教学方法。这是一项小的、可实现的任务,能够使学生有成就感。这是一个标准,有助于说明不同编程语言之间的差异。这也是高级程序员确保安装新环境后一切正常的一种快速简便的方法。(有时程序员使用「到'hello world'的时间」比较语言和环境的速度。)也许最重要的是,「Hello,world!」能帮你打开编程的大门,它告诉你这就是新世界。——Chris Noessel,IBM AI 设计主管。
以空字符结尾 的字符串(1972 年)

计算史上最大的灾难性设计错误

1972 年,Dennis Ritchie 做出了一个重大决定:用一种名为「空字符结尾字符串」(null-terminated string)的新语言来表示文本。这个概念早就出现了,但是他把其写进了他称为 C 的新语言中,这个决定就一直影响我们到现在。
编程语言代表一段文本的主要方式有两种:一是具有固定、显式长度——「只包含 10 个字符,不能再多了」或者可以以空值结尾——「这里有一串字符,继续努力,直到看到零字节为止!」
C 代码中有一个非常常见的错误,在将一个长字符串复制到一个较短的字符串中时,会出现结尾溢出,即你破坏了刚好在附近的其他数据。就像在白板的边缘上乱涂乱画一样。
除了仅使程序出现故障外,还可以利用此类错误来改变程序行为,方法是使用经过精心设计的特定数据覆盖某些内容。这些就是缓冲区溢出攻击。你听说过的几乎所有安全漏洞都从 1988 年的 Morris Worm 开始。
你必须在 C 语言中仔细编码以避免此类错误,但是此类错误仍然容易发生。从路由器到「智能」灯泡,几乎每种现代语言都避开了空字符结尾字符串,但是 C 和 C++仍然在语言界有支配地位。因此,近 50 年后的现在,我们还在「饱受折磨」。——Jamie Zawinski,Netscape 开发人员、Mozilla.org 创始人
温哥华股票交易所的交易错误(1982 年)

不起眼的小数误差造成极大损失







请到「今天看啥」查看全文


推荐文章
河北交通广播  ·  六小龄童发文悼念!老戏骨因病去世
昨天
河北交通广播  ·  优化调整!包括石家庄→
2 天前
河北新闻广播  ·  河北省教育厅最新通知
2 天前
读书小分队  ·  说多了对不起,就会让我们没关系
8 年前
网易梦幻西游手游  ·  暴击两三千又怎样?两下就给你推回来
8 年前
塔罗牌解忧馆  ·  女孩子究竟是怎么由丑变美的?
8 年前
情侣ins头像  ·  做过最疯狂的一件事是什么?
8 年前