“计算机”一词在1613年首次被用来描述进行计算的人。这个定义一直保持不变,直到19世纪末,科技产业催生了以计算为主要任务的机器。“第一台计算机是什么时候发明的?”这个问题没有简单的答案因为计算机有许多不同的分类。第一台机械计算机器是查尔斯·巴贝奇在1822年发明的。然而,它并不真正像目前大多数人所认为的计算机。计算机发展的突飞猛进,还有很多我们不知道的东西,再加上很多科学家的贡献,我们的课本上没有提到。为了让你掌握所有必要的计算机知识,我们收集了计算机科学中一些著名的发明,从第一台机器到微芯片时代。25. 第一台计算机:“差分机”——1821年查尔斯·巴贝奇(也被称为计算机之父)开始研究基于有限差分原理的差分机。它只使用算术加法,不需要更难机械实现的乘法和除法。它被严格设计为计算和制表多项式函数。该项目是由英国政府委托进行的,但由于生产成本较高,资金在中途停止,机器一直没有完工。24. 第一台通用计算机: 分析机——1834年查尔斯·巴贝奇构想了一台更具雄心的机器,第一台通用可编程计算引擎,后来被称为分析引擎。它具有现代数字计算机的许多基本特征。这种机器可以用穿孔卡片编程,这种机器有一个可以存放数字和中间结果的“存储器”和一个单独的进行算术运算的“磨坊”。这个引擎还能够执行直接的乘法和除法、并行处理、微编程、迭代、闭锁、条件分支、脉冲整形,尽管巴贝奇从未使用过这些术语。不幸的是,和差分机一样,这台机器也没有完成。23. 第一个计算机程序——1841年1841年,世界上第一位计算机程序员阿达·洛夫莱斯开始翻译路易吉·梅纳布雷(意大利数学家)关于巴贝奇分析引擎的记录。她知道如何让它做计算机所做的事情,并建议使用数据输入来对机器进行编程,以计算伯努利数。艾达是一位有远见的数学家,她知道数字不仅仅可以用来表示数量。她预言像分析机这样的机器可以用来制作图形,作曲,并对科学有用。22.制表机——1884年赫尔曼·霍尔瑞斯在19世纪晚期致力于他的机器穿孔和计数卡的想法。他发明了一种机器,可以通过电子阅读和分类穿孔卡片来记录统计数据。1896年,霍尔瑞斯在纽约创立了制表机器公司,后来发展成为IBM。这台机器在美国很成功,但在欧洲更受关注,它被广泛用于各种统计目的。21. 第一台模拟计算机:差分分析仪——1930第一台现代模拟计算机是由麻省理工学院工程师万尼瓦·布什开发的。实际上,它是一个模拟计算器,可以解一些在物理和工程应用中最常用的微分方程组。这台机器产生了近似的、尽管实用的解决方案。在这台机器中,轴运动代表变量,乘法和加法是通过将值输入齿轮来完成的。在圆台上以不同半径旋转的刀刃轮完成了积分部分。在求解微分方程组时,将不同的机械积分器连接起来。20.第一台可编程计算机:Z3–1941康拉德·祖斯(发明家和计算机先驱)于1936年设计了第一台Z系列计算机。Z1完全是机械式的,一次最多只能工作几分钟。它在真空管的基础上进行布尔运算和触发器。在接下来的几十年里,不同技术的使用导致了Z2,并最终产生了Z3。Z3由2000个继电器组成,实现了22位长度。恒定数据和程序代码存储在穿孔薄膜上,因此无需重新布线来改变程序。Z3是德国政府的秘密项目,由德国飞机研究所用于对机翼颤振进行统计分析。最初的机器在1943年盟军轰炸柏林期间被摧毁。19.第一台电子计算机:ABC–1942年阿塔纳索夫-贝瑞计算机(ABC)是由约翰·文森特·阿塔纳索夫和他的助手克利福德·E·贝里设计和建造的。它是第一台使用电容器进行存储的机器(就像在当前的RAM中一样),能够同时执行30次操作。阿塔纳索夫-贝瑞计算机旨在解决线性方程系统,能够解决多达29个未知数的系统。计算机是不可编程的,但是,它开创了现代计算的一些重要元素,包括二进制算术和电子开关元件。18. 第一台可编程计算机:巨像——1943年巨像是由汤米·弗劳尔斯创造的世界上第一台电子可编程计算机。第二次世界大战期间,英国人用它来阅读德国的秘密信息(用洛伦兹密码加密)。巨像不应该解密所有的信息。它刚刚为洛伦兹机器找到了相近的设置。这个想法是,德语信息中字母和数字的频率将为翻译信息本身提供一个开端。直到20世纪70年代,这些计算机都非常保密。战后,所有的巨像都被打碎了,设计也被破坏了。没有人知道第一个制造巨像的人。2007年,工程师们制作了一个巨像的工作原型。17. 第一个计算机网络——1940年在1940年至1946年间,乔治·斯蒂比茨和他的团队利用机电继电器,开发了一系列具有电话技术的机器。这些机器可为多个用户服务。很快它们就被淘汰了,因为它们是基于缓慢的机械继电器而不是电子开关。今天,数据通信的主要基础是分组交换:阿帕网(高级研究计划局网络)是早期的分组交换网络,也是第一个实现TCP/IP协议套件的网络(1982年)。两者都成为了互联网的技术基础。16. 第一个轨迹球 – 1941/19521941年,拉尔夫·本杰明为火控雷达标绘系统发明了一种称为轨迹球的相关定点设备,称为综合显示系统(CDS)。本杰明之前的项目使用模拟计算机根据用户使用操纵杆输入的各种输入点测量目标飞机的未来位置。他意识到需要一种更高效的输入设备,因此他为此发明了一种被称为滚球的东西。这个新设备有一个球来控制屏幕上光标的X-Y坐标。它于1947年获得专利,并被列为军事机密。另一个早期的轨迹球是由英国电气工程师肯扬·泰勒和他的同事弗雷德·朗斯塔夫和汤姆·克兰斯顿于1952年制造的。它在概念上与本杰明的设备相似。轨迹球使用4个圆盘来获取运动,X和Y坐标各2个。一台数字计算机计算轨迹,并使用脉冲编码调制无线电信号将结果数据传送给特遣队的其他船只。这个设计没有申请专利,因为它也是一个秘密的军事项目。15. 第一台通用可编程电子计算机:ENIAC - 1946电子数值积分计算机(ENiAC)是图灵完成的数字机器,可以通过重新编程解决广泛的数值问题。它主要用于计算火炮发射表,并帮助计算氢弹的可行性。到其运营结束时(1955 年),ENIAC 包含 7200 个晶体二极管、17468 个真空管、10000 个电容器、70,000 个电阻器和超过 500 万个手工焊接接头。 它的大小约为 8x3x100 英尺,重 30 吨,耗电量为 150 千瓦。它使用读卡器作为输入,打卡机作为输出。计算机的速度比机电机器快一千倍。14.第一个完整的高级语言:普兰卡尔库尔–1948德国计算机科学家康拉德·祖思,第一台中继计算机的发明者,于1941年开始研究高级编程语言。他想出了他的机器(Z4计算机)如何以一种强大的方式被编程。普兰卡尔库尔是一种类型化的高级命令式编程语言,具有广泛的功能,如非递归函数、局部变量、赋值操作、条件语句、迭代构造、逻辑操作、基本数据类型等。普兰卡尔库尔最终在1972年的一篇论文中全面发表,而它的第一个编译器最晚是在1998年建立的。13.第一台存储程序的电子数字计算机:SSEM -1948年SSEM(曼彻斯特小型实验机),绰号 Baby,于 1948 年 6 月 21 日执行了它的第一个程序。该程序由汤姆·基尔伯恩编写,他实际建造了这台计算机,并由他的导师弗雷德里克·威廉姆斯设计。 它是第一台包含现代计算机所必需的所有模块的工作机器。曼彻斯特小型实验机包含32位字节,单一地址格式的顺序代码,32个字的内存,每条指令的计算速度约为1.2毫秒。比特以电荷的形式存储在阴极射线管荧光粉上,电子束可以控制它写入1或0。除减法和反运算外,其余的算术运算均在软件中实现12.第一个装配工:初始订单-1949年汇编程序把用汇编语言编写的软件程序翻译成机器代码和可以被计算机执行的指令。第一个汇编程序是为EDSAC(电子延迟存储自动计算器)设计的。最初的指令(由大卫·惠勒编写)有31条指令,这些指令被硬连接在unisextors(一种机械只读存储器)上。初始指令的第二个版本占用了整整41个字的只读内存,并包含了重新定位(或协调)的设施,以方便子例程的使用。11.第一台个人电脑:西蒙——1950年埃德蒙·伯克利的西蒙是一台基于继电器的计算机,设计用于演示数字计算机概念的教育目的。用户通过穿孔纸或前面板上的5个键输入数据,程序从标准纸带运行。算术逻辑单元和寄存器只存储2位,这就是它不能用于任何重要的实际计算的原因。除了数据输入外,穿孔磁带还用作内存存储。当机器从磁带上读取指令时,所有指令都是按顺序执行的。它可以执行4个操作:加法、大于、求反和选择。输出由五个灯提供。10.第一台实时图形显示计算机:安/FSQ-7-1951由IBM开发的AN/FSQ-7是迄今为止建造的最大的计算机。它由两台旋风II计算机组成,安装在一栋4层楼高的建筑中。这是一种用于防空网络的控制和指挥系统。它计算了一个或多个预测的拦截点,用于使用ATABE(自动目标和电池评估)算法分配飞机或CIM-10 Bomarc型导弹拦截入侵者。它有超过6万根真空管,耗电3000千瓦,每秒执行7.4万条指令,用于区域雷达联网。每台机器支持100多个用户。IBM过去让一个单元运行,另一个单元处于热备状态,这带来了更长的正常运行时间(约99%)。9.第一个电子计算机编译器:A-0系统-1951编译器是一种将高级语言转换成机器代码的特殊程序。格蕾丝·赫柏为UNIVAC I编写了算术语言版本0(或A-0系统),旨在将一系列子程序和参数转换成机器代码。子程序通过数字代码识别,参数直接集成在每个子程序代码之后。 A-0 将这些规范转化为机器语言,可以再次输入计算机以执行上述程序。8. 第一个开源软件:A-2系统- 1953A-0系统后来演变成A-2,发布为算术形式。它由雷明顿兰德公司的电子计算机部门开发,并于1953年底发布给客户。用户获得了A-2的源代码,并被邀请将其增强功能发送回UNIVAC。7. 第一次自动编码:格伦尼自动编码- 1952年在20世纪60年代,术语“自动代码”被更一般地用来指代任何使用编译器的高级编程语言。阿利克·格伦尼在曼彻斯特大学为Mark 1计算机开发了第一个自动代码。它被认为是第一种编译的编程语言。格伦尼的主要目标是让马克1号机器难懂的代码变得容易理解。尽管最终的语言比机器代码更有条理、更清晰,但它仍然在很大程度上依赖于机器。马克1的第二个自动代码是由r.a. Brooker在1955年开发的。与第一个版本不同的是,它几乎与机器无关,并且具有浮点运算。但是,它只允许每行有一个操作,并且没有办法定义用户子例程。第一种流行的高级语言:FORTRAN-1957Fortran(公式翻译器)是由IBM的约翰·巴科斯领导的一个团队创建的。它很早就在编程领域占据了主导地位,并在计算流体力学、有限元分析、计算化学和计算物理等科学和工程领域中使用了半个多世纪。公式翻译器设计的目标是建立一种易于学习、独立于机器、适用于各种应用程序的语言,并允许复杂的数学表达式像常规代数符号一样表达。由于代码更容易编写,程序员编写代码的速度比以前快了5倍,但执行效率却下降了20%。5.第一只电脑鼠标——1964年我们今天所知的计算机鼠标是道格拉斯·恩格尔巴特在比尔·英格利希的帮助下发明的,并于1970年11月17日获得专利。这只是一个旨在增强人类智力的更大项目中的一小部分。恩格尔巴特需要使用某种机器在屏幕上移动光标来与信息显示交互的能力。当时已经有不同的设备在使用,包括光笔和操纵杆。然而,他正在寻找最有效的设备。鼠标的第一个原型是用于GUI窗口的。它被称为“显示系统的X-Y位置指示器”,并于1973年首次与施乐Alto计算机系统一起使用。非常奇怪的是,最流行的计算机接口设备之一的发明者没有收到任何鼠标发明的版税。他作为国际斯坦福研究所的转让人,获得了该专利,国际斯坦福研究所,以大约40000美元的价格将其许可给了苹果,这太荒谬了。道格拉斯什么也没收到!4.1965年第一块触摸屏E.A.约翰逊在一篇名为《触摸屏--一种用于计算机的新型输入/输出设备》的文章中描述了他在电容式触摸屏(没有压力敏感性)方面的工作。在那篇文章中,有一张图表描述了至今仍在使用的触摸屏概念。几年后,约翰逊在1967年发表在人体工程学杂志上的《触摸屏:程序化人机界面》一书中,用照片和更多的图表进一步详细说明了这些概念。直到20世纪90年代,这一想法一直被英国的空中交通管制员采用。此外,第一个电阻式触摸屏是由乔治·塞缪尔·赫斯特(美国创新者)开发的,他于1975年获得了美国专利#3911215。3.第一台商用个人电脑:程序101–1965程序101可以执行基本的四种算术功能(加法、减法、乘法除法),计算绝对值、平方根和小数。它由存储寄存器组成,具有16条条件跳转指令、字母数字编程语言和内部存储器。磁卡和程序可以在没有编程知识的情况下使用。这台机器将程序和结果打印在一卷纸带上,类似于收银机的纸和计算器。早期的计算机价格昂贵,只能由专家使用。然而,P101既经济又容易。它的定价为32,000美元,设法售出了超过44,000台。2. 第一种面向对象的程序设计语言:Simula - 1967Simula是由挪威计算中心的Ole-Johan Dahl和Kristen Nygaard开发的。它保留了ALGOL 60编程语言的精神。Simula是两种模拟语言-Simula I和Simula 67的名称。Simula 67引入了对象、类、子类、继承、虚拟过程、协程和垃圾收集特性。它被广泛应用于工艺建模、算法、VLSI设计和计算机图形学等领域。Simula 67的概念在C++、C#、Pascal、Java等语言中得到了重新实现。1.第一个微处理器:Intel 4004-19711970年4月开始芯片设计,1971年1月在费德里科·费金的领导下完成。这种4位寄存器比人类的拇指指甲盖还小,时钟速度为740千赫,拥有2300个10微米间距的晶体管,每秒可以执行6万次操作,成本为200美元,但其计算能力与ENIAC计算机相当。Busicom计算器141-PF是第一个使用微处理器的商业产品。Intel 4004使用独立的程序和数据存储(与哈佛体系结构设计相反)、用于传输12位地址、8位指令和4位数据字的单一多路复用4位总线。它能够直接寻址5120比特的随机存储器,32768比特的只读存储器,并支持3级深度的内部子例程堆栈。