酷玛Play - 2016年2月
type: channel
link: https://www.culmart.com/play/2016/02/
description: 信息技术、开源硬件、编程语言、创意技术和网站开发。
items: 计算机编程领域最伟大的20项发明

计算机编程领域最伟大的20项发明
type: item
date: 2016-02-28T15:55:00+08:00
description: 计算机编程有一段混沌的起源历史，说法众多，比如1800年Joseph Marie Jacquard 教会一个纺织机读穿孔卡片，这种说法也写入维基百科词条。在后续的历史中更有神奇，比如多产程序员安德斯·海尔斯伯格开发了Turbo Pascal、Delphi，以及C#。1 第一台计算机：“差分机”（1821年）“差分机”是1821年由英国政府委托科学家巴贝奇设计而成的，这台机器这台机器共分为三个部分：堆栈、控制器和运算器，这几乎就是现代计算机的简化翻版，它可以处理3个不同的5位数，计算精度达到6位小数，能提高乘法速度和改进对数表等数字表的精确度。但由于其过高的设计成本，其后续的大型差分机的制作最后以失败而告终。2 第一台通用计算机：“分析机”（1834年）分析机是由英国数学家查尔斯·巴贝奇设计的一种机械式通用计算机。分析机由蒸汽机驱动，大约有30米长、10米宽。它使用打孔纸带输入，采取最普通的十进制计数。这是来自巴贝奇的另外一个想法，他把分析机制造成了由黄铜配件组成，用蒸汽驱动的机器，可惜最后也是以失败而告终。3 第一个计算机程序：计算伯努利数的算法（1841 - 1842年）世界上第一个程序员Ada Augusta（另外她还是英国著名诗人拜伦的女儿）在1841年使用巴贝奇的分析机翻译意大利数学家Luigi Menabrea的笔记。在翻译过程中，她对这台机器产生浓厚兴趣并留下了她的翻译笔记。 笔记之一——note G，记载了通过分析机计算伯努利数的算法，这被公认为是第一个计算机程序。4 第一个能运转的可编程计算机：Z3（1941年）Konrad Zuse（第一台电子计算机的发明者）发明了可运转的机械计算机Z1，但是它一次只能运转几分钟，随后，他使用不同的技术发明了Z2和Z3。Z3是程序和数据存储在外部穿孔带的电磁式计算机，这是德国政府的一个秘密工程，被德国飞机研究所使用，机器原型在1943年柏林的大轰炸中毁坏。5 第一台电子计算机：Atanasoff-Berry计算机(ABC)（1942年）这台机器是由John Vincent Atanasoff和 Clifford Berry制造的，所以被命名为Atanasoff-Berry计算机或者简称为ABC，它被用于寻找线性方程组的解。这是第一个使用二进制来表示数据，通过电子开关来代替机械的计算机，但是这台机器无法编程。6 第一台可编程的计算机：巨人(Colossus )（1943年）“巨人”是由Tommy Flowers制造的，它被用于二战中帮助英国破译德国的由洛伦兹密码加密的消息。它是由电子开关和插塞来编程的，使得破译密码的时间由过去的几周缩短到几个小时。7 第一台通用的可编程计算机：ENIAC（1946年）ENIAC是由美国陆军资助，由宾夕法尼亚大学摩尔电气工程学院的John Mauchly等4人开发的。ENIAC宽150英尺，可以进行复杂的变成操作，如循环。它的编程是通过电子开关和电缆来完成的，输入依靠卡片阅读器而输出依靠卡片穿孔机。它协助了世界上第一颗氢弹的研制。8 第一个轨迹球：（1946/1952年）为什么关于第一个轨迹球的年份会有2个？我来解释一下。第一个年份：Ralph Benjamin在1946年研究用于低空飞行飞机的监控系统时创建了第一个轨迹球。他描述的发明是使用一个球来控制屏幕上光标的x - y坐标。这项设计在1947年申请了专利，但从未对外公布。这个发明被认为是军事机密，被用于代替操作杆。第二个年份：Tom Cranston和他的公司在1952年开发了用于加拿大海军DATAR系统的世界第一个 轨迹球。这个轨迹球的设计模拟了在“空气轴承”中加拿大保龄球的旋转。9 第一个可存储程序的计算机：SSEM（1948年）为了克服延迟线存储器的缺点，Frederic C. Williams和Tom Kilburn 发明了第一个基于标准CRT的随机存取数字存储设备。SSEM被用于完成存储设备的实际存储，输入的程序为使用32个开关的二进制形式，输出使用CRT。10 第一个高级编程语言：Plankalkül （1948年）虽然自1943年以来，Konrad Zuse（第一台电子计算机的发明者）一直在研究Plankalkül ，但他只在1948年发表了一篇关于这门语言的论文。不幸的是这篇论文并没有得到太多的关注。一直到接近三十年之后才由Joachim Hohmann论文中提到可以在编译器中使用它进行编译。11 第一个汇编程序：EDSAC计算机的“初始订单”（1949年）汇编程序是一个能够将低级的助记符转化为数字表达（机器语言）。EDSAC计算机的“初始订单”是第一个这样的系统。它被用于组装从纸带输入到内存的程序并运行输入。这个程序使用助记符代替机器语言，通过将象征性的低水平程序代码转化…