计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。
在过去的几十年里,计算机科学经历了令人瞩目的飞速发展。经历了电子管、晶体管、集成电路的世代发展,体积越来越小、性能越来越强,为人类带来了巨大的便利和变革,下面我们来回顾计算机的发展历程。
1936年英国数学家阿兰·麦席森·图灵(Alan Mathison Turing)发表了论文“论可计算及其在判定问题中的应用(On Computable Numbers With an Application to the Enstcheidungs Problem)”。有趣的是,该论文的主题是回答德国大数学家戴维 · 希尔伯特在1900年提出的著名的“23个数学难题”中的一个问题,只是在其论文的一个脚注中“顺便”提出来一种计算机抽象模型或称为理想中的计算机,利用这种计算机,可以把推理化作一些简单的机械动作。可真是“歪打正着”,正是这个脚注,开辟了计算机科学技术史的新纪元。图灵提出的这种计算模型现在被大家称为“图灵机”(Turing Machine),图灵机的出现为现代计算机科学奠定了理论基础。
图灵的论文发表后,立刻引起了美国科学家的重视,暜林斯顿大学立即向图灵发出邀请,于是图灵首次远涉重洋来到美国,并在暜林斯顿大学进修。在这段时间里,图灵还遇到了计算机科学理论的另一位重要奠基人——约翰·冯·诺依曼(John von Neumann)。
冯·诺依曼对图灵发表的论文极度赞赏,冯·诺依曼在提出了著名的“冯·诺依曼体系结构”后一再强调他的“存储程序”的主要思想就来自于图灵。
在图灵去世后的12年,美国的计算机协会ACM (Association for Computing Machinery) 确定设立图灵奖,专门奖励那些在计算机科学研究中作出创造性贡献、推动计算机科学技术发展的杰出科学家,它是计算机界最负盛名、最崇高的一个奖项,有“计算机界的诺贝尔奖”之称。
1938年美国数学家、信息论创始人克劳德·艾尔伍德·香农(Claude Elwood Shannon)在其硕士毕业论文《中继及开关电路的符号分析》论证了数字计算机及数字线路逻辑设计的可能性,深刻的揭示了布尔代数与开关电路之间的关系,这篇论文奠定了计算机电路设计的基础。另外,香农在1948年发表的划时代论文《通信的数学理论》中,宣告了“信息论”作为一门学科的诞生,信息论为计算机领域的信息处理和通信提供了理论基础。
世界上真正意义上的第一台电子数字计算机是由美国物理学家约翰·文森特·阿塔纳索夫 (John Vincent Atanasoff)和当时还是物理系研究生的贝瑞在1937年开始设计,该计算机不可编程,仅仅设计用于求解线性方程组,并在1942年成功进行了测试,该计算机是一台样机,并未完全实现阿塔纳索夫的构想。这台样机被称为阿塔纳索夫-贝瑞计算机(Atanasoff–Berry Computer,通常简称ABC计算机),是目前公认的计算机先驱,ABC计算机为今天大型机和小型机的发展奠定了坚实的基础。
1946年美国物理学家莫奇利(Mauchly,John William)任总设计师,和他的学生约翰·埃克特(John Presper Eckert)基于ABC计算机的设计思想研制成功出了一台真正使用的电子数字计算机,取名埃尼阿克(Electronic Numerical Integrator And Computer,ENIAC,简称ENIAC)。
ENIAC代表了计算机发展史上的里程碑。莫奇利和他的学生埃克特成功研制ENIAC后就立即为其申请并获得了美国专利,这就导致了ABC于ENIAC之间的“世界上第一台电子数字计算机”头衔之争。不过莫奇利的专利于1973年被美国明尼苏达地区法院宣判取消,因而现在公认的第一台电子计算机为ABC。不过至今为止国内外的不少文献上仍将ENIAC列为“第一台”计算机,在此我们也不做过多的讨论,值得肯定的是无论是ACB还是ENIAC无疑都是人类历史上最伟大的发明之一。
自1946年ENIAC诞生后,计算机随着硬件设备的发展也迎来了飞速进步,大致分为四个阶段,如表所示。
发展阶段 | 时间 | 硬件设备 | 运算速度 | 操作系统 | 特点 |
---|---|---|---|---|---|
第一代 | 1946~1956 | 电子管 | 几千~几万 | 无操作系统 | 使用机器语言编程 体积庞大,耗电量大,主要用于军事研究 |
第二代 | 1956~1963 | 晶体管 | 几十万~几百万 | 单道批处理系统 | 主要使用汇编语言 开始使用FORTRAN、GOBOL等语言 体积变小,耗电量降低,可靠性提高 |
第三代 | 1964~1971 | 集成电路 | 几百万~几千万 | 多道批处理系统、分时系统 | 高级语言进一步发展 开始使用A(ALGOL)、B、C等语言 速度快、体积小,开始应用于社会各个领域。 |
第四代 | 1971~至今 | 超大规模集成电路 | 几十亿~几千亿 | 现代操作系统 | 使用各种高级语言,如Java、C/C++、Python等 体积更小,运算速度更快,应用领域更广。 |