1.前言
在信息时代,计算机已经走进千家万户,人们的生活、工作、学习都离不开计算机的参与。计算机已经成为了人类社会不可或缺的工具,但其实纵观计算机的发展历史,我们可以惊讶的发现,世界上早期的电子计算机出现,距今不足百年。作为信息社会的一员,无论我们从事何种职业,都有必要对我们正在使用的工具——计算机有一定的了解。然而,现代计算机是一个复杂而精密的系统,让想了解和学习的人们望而却步,其实,任何学习都是一个从简入繁的过程,或许我们可以先从最原始的机械计算机开始了解。
2.机械计算机
计算机的概念很早就出现了,与现代计算机不同,最早期的计算机的概念是一种可以帮助人们进行加减乘除的机器,并随着数学的发展,逐渐扩充到解多项式方程等功能。在1930年以前,出现了不少计算机的雏形,尽管它与现代计算机几乎没有共同点。
- 1642年,法国著名的数学家和物理学家布菜斯 ·帕斯卡(Blaise Pascal)发明了Pascaline,这是一个用来进行加减运算的计算机器。到了20世纪,尼克劳斯·沃思(Niklaus Wirth)发明了一种结构化的程序设计语言,他将其命名为 Pascal 语言,用来纪念这位发明首台机械计算机器的科学家。
- 1694年,德国数学家戈特弗里德·莱布尼茨(Gottfried Leibnitz)发明了一台既能够做乘除运算又能做加減运算的更加复杂的计算机器。这台机器被称为莱布尼茨之轮(Leibnitz’s Wheel)。
- 第一台利用存储和编程概念的机器是雅卡尔提花织机(Jacguard 10om),它是由约瑟夫-玛丽· 雅卡尔(Joseph-Marie Jacquard) 在19世纪初期发明的。这种织机利用穿孔卡(类似于存储程序)来控制织布过程中经线的提升。
- 1823年,查尔斯·巴比奇(Charles Babbage)发明了一种差分引擎,它不仅能够很容易地进行数学运算,还可以解多项式方程。后来,他发明了一种叫作分析引擎的机器,在某种程度上和现代计算机的概念类似。该机器由4个部分组成:制造场(现在的算术逻辑单元)、存储单元(存储器)、操作者(控制单元)和输出单元(输人/输出)。
- 1890年,在美国人口普查办公室工作的赫尔曼·何勒里斯(Herman Hollerith)设计并制造出具有编程能力的机器,该机器可以自动阅读、计数和排列存储在穿孔卡上的数据。
3.机电计算机
19世纪末期电报和电话的发展导致了自动电话交换机和通信网络的出现。电话交换装置使用一种叫作继电器的机电开关,它很像今天的二进制逻辑开关元件,可以用来制造机电式计算机。术语机电(electromechanical)指那些有活动件但却由电控制的零件。例如,继电器利用线圈磁化铁芯从而控制开关。
1867年发明的打字机和1879年发明的穿孔制表机(穿孔卡片输入机)都促进了机电式计算机的发展。机电式计算机是连接机械时代与以真空管、晶体管和集成电路为代表的电子时代的纽带。一些人将康拉德·楚泽(Konrad Zuse)视作电子计算机的发明者。20世纪40年代他在德国制造出自己设计的计算机,在第二次世界大战期间该计算机用来设计飞机。不过他的大部分工作都毁于盟军轰炸,在很长一段时间里,楚泽的工作都不为计算机界所知。
楚泽的计算机是第一台可编程计算机;而同时代的其他机器都不是软件可编程的,只能算作是自动计算器。楚泽还设计了世界上第一种程序设计语言,叫作 Plankalkil。
1944年,为了计算炮弹轨迹,霍华德·艾肯(Howard Aiken)在哈佛大学设计了马克1号机电式计算机。马克1号是一台早期的可编程电子计算器,但不支持条件操作,因此不能算作是今天意义上的计算机。
4.电子计算机
1930~1950年,那些被视电子计算机工业先驱的科学家们发明了一些计算机。
早期的电子计算机并不是将程序存储到存储器中,所有的计算机都是在外部进行编程的。有以下5种比较杰出的计算机:
- 第一台用来完成特定任务的计算机是通过将信息进行电子编码来实现其功能的,它是由约翰·阿塔纳索夫(John V. Atanasoff)及其助手克利福德·贝里(Clifford Berry)于1939年发明的。它又被称为 ABC(Atanasoff Berry Computer),主要用于实现解线性方程组。
- 在同一时期,名为康拉德·朱斯(Konrad Zuse)的德国数学家设计出通用计算机,并命名为“Z1”。
- 20世纪30年代,美国海军和IBM公司在哈佛大学发起了一项工程,在霍华德·艾肯(Howard Aiken)的直接领导下建造了一台名MarkI的巨型计算机。这种计算机既使用了电子部件,也使用了机械部件。
- 在英国,阿兰·图灵发明了一台名为巨人(Colossus)的计算机,这台计算机是为破译德国 Enigma 密码而设计的。
- 第一台通用的、完全电子的计算机由约翰·莫奇勒(John Mauchly)和普雷斯波·埃克特(J. Presper Eckert) 发明,这台计算机被称为 ENIAC(Electronic NumericalIntegrator and Calculator,电子数字积分器和计算器)。它是在1946年完成设计的,利用了将近18 000 个真空管,有100英尺9长,10英尺高,重达30吨。
前面5种计算机的存储器仅仅用来存放数据,它们利用配线或开关进行外部编程。冯·诺依曼提出程序和数据应该存储在存储器中。按照这种方法,每次使用计算机来完成一项新的任务。你只需要改变程序,而不用重新布线或者调节成百上千的开关。
第一台基于冯氏思想的计算机于1950年在宾夕法尼亚大学诞生,命名为EDVAC。与此同时,英国剑桥大学的莫里斯·威尔克斯(Maurice Wilkes)制造了同样类型的被称为EDSAC 的计算机。
5.现代计算机
1950年以后出现的计算机都差不多基于冯·诺依曼模型。它们变得更快、更小、更便宜,但原理几乎是相同的。历史学家将这一时期划分为几代,每一代计算机的改进主要体现在硬件或软件方面(而不是模型)。
第一代计算机(大约1950~1959年)以商用计算机的出现为主要特征。在这个时期,计算机只有专家们才能使用。它们被锁在房子里,限制操作者和计算机专家以外的人员进入。计算机体积庞大,且使用真空管作为电子开关。此时的计算机只有大的机构才能负担得起。
第二代计算机(大约1959~1965年)使用晶体管代替了真空管。这既减小了计算机的体积,也节省了开支,从而使得中小型企业也可以负担得起。FORTRAN和COBOL这两种高级计算机程序设计语言的发明使得编程更加容易。这两种语言将编程任务和计算机运算任务分离开来。例如,土木工程师能够直接编写一个FORTRAN程序来解决问题,而不必涉及计算机结构中的具体电子细节。
集成电路(晶体管、导线以及其他部件做在一块单芯片上)的发明更加减少了计算机的成本和大小。小型计算机出现在市场上。封装的程序,就是通常所说的软件包也已经有售。
小型公司可以买到需要的软件包(如会计程序),而不必写自己的程序。一个新的行业——软件行业就此诞生了。这个时期大概从 1965年持续到1975年。
第四代计算机(大约1975~1985年)出现了微型计算机。第一个桌面计算器(Altair8800)出现在1975年。电子工业的发展允许整个计算机子系统做在单块电路板上。这一时代还出现了计算机网络。
第五代计算机始于1985年,至今仍在发展,这个时代见证了掌上计算机和台式计算机的诞生、第二代存储媒体(CD-ROM、DVD 等)的改进、多媒体的应用以及虚拟现实现象。
6.总结与展望
计算机技术仍在飞速发展,但是计算机的基本原理却并没有很大改变。1950年以后的计算机与当下的计算机相比,变化的只是工艺、设计、内部组成和外设,人们能够在更小的芯片上集成更复杂的电路,存储器的容量也有了大幅度提升,计算机的性能越来越强。随着人工智能的发展,计算机技术是否会迎来根本性的变革,我们都将是这个时代的见证者。