浅谈计算机和编程语言的发展历史
计算机、操作系统和编程语言
一、计算机的发展历史
在第二次世界大战中,美国政府寻求计算机以开发潜在的战略价值。这促进了计算机的研究与发展。1944年霍华德·艾肯研制出全电子计算器,为美国海军绘制弹道图。这台简称 Mark Ⅰ 的机器有半个足球场大,内含500英里的电线,使用电磁信号来移动机械部件,速度很慢(3~5秒才能计算1次),并且适应性很差,只用于专门的领域,但是它既可以执行基本算术运算也可以运算一些复杂的等式。
1946年,2月14日,由美国军方定制的世界上第一台电子计算机——“电子数字积分计算机”(ENIAC Electronic Numerical And Calculator)在美国宾夕法尼亚大学问世。ENIAC是美国奥伯丁武器试验场为了满足计算弹道需要而研制成的,这台计算器使用了17840支电子管,大小为80英尺 x 8英尺,重达28吨,功耗为170kW,其运行速度——每秒可进行5000次的加法运算,造价约为487000美元。
1、第1代:电子管数字机(1946—1958年)
(1)硬件方面,逻辑元件采用的是真空电子管,主存储器采用汞延迟线电子管数字计算机、阴极射线示波管静电存储器、磁鼓、磁芯;外存储器采用的是磁带。软件方面采用的是机器语言、汇编语言。应用领域以军事和科学计算为主。
(2)特点是体积大、功耗高、可靠性差。速度慢(一般为每秒数千次至数万次)、价格昂贵,但为以后的计算机发展奠定了基础。
2、第2代:晶体管数字机(1958—1964年)
(1)应用领域以科学计算和事务处理为主,并开始进入工业控制领域。
(2)特点是体积缩小、能耗降低、可靠性提高、运算速度提高(一般为每秒数10万次,可高达300万次)、性能比第1代计算机有很大的提高。
3、第3代:集成电路数字机(1964—1970年)
(1)硬件方面,逻辑元件采用中、小规模集成电路(MSI、SSI),主存储器仍采用磁芯。软件方面出现了分时操作系统以及结构化、规模化程序设计方法。
(2)特点是速度更快(一般为每秒数百万次至数千万次),而且可靠性有了显著提高,价格进一步下降,产品走向了通用化、系列化和标准化等。应用领域开始进入文字处理和图形图像处理领域。
4、第4代:大规模集成电路机(1970年至今)
(1)硬件方面,逻辑元件采用大规模和超大规模集成电路(LSI和VLSI)。软件方面出现了数据库管理系统、网络管理系统和面向对象语言等。
(2)特点是1971年世界上第一台微处理器在美国硅谷诞生,开创了微型计算机的新时代。应用领域从科学计算领域。
二、UNIX操作系统和C语言的由来
因为计算机的电路中所包含的信息都是来自电信号的,而且为了方便地区分输出的是高电压和低电压,早期的操作人员是通过带有孔的纸带将程序输入电脑进行编译(对纸条打点),点代表1或0,即二进制。后面出现了汇编语言,操作人员每人一个小册子(指令小册子),开发人员非常非常辛苦。
最早的二进制语言,示例:
1、0000,0000,000000010000 代表 LOAD A, 16 ## 表示将16存入A寄存器(可以将寄存器理解为内存或者硬盘)
2、0000,0001,000000000001 代表 LOAD B, 1 ## 表示将1存入B寄存器
3、0001,0001,000000010000 代表 STORE B, 16 ## 表示将16存入B寄存器
汇编语言示例:
1、UNIX操作系统的产生
20世纪60年代,贝尔实验室的研究员Ken Thompson(肯·汤普森)发明了B语言,并使用B编写了一个游戏——Space Travel,为了玩自己这个游戏,他背着老板找到了一台空闲的机器——PDP-7(机器编号),但是这台机器没有操作系统(Operating System 简称OS),于是Thompson着手为PDP-7开发OS,后来这个他将自己开发的这个OS命名为——UNIX。
1971年,Thompson的同事D.M.Ritchie(里奇),也很想玩Space Travel这个游戏,所以他决定跟Thompson合作,两人一起开发UNIX,他当时的主要工作是改进Thompson的B语言。
最终,在1972年,改进后的B语言诞生了,即C语言,它命名取自BCPL(Base Combined Programming Language)的第二个字母(BCPL也是一门语言,B语言就是对BCPL进行改进而诞生的)。
汤普森(左)和里奇(右):
2、编程语言的简要历史
C语言、C语言的起源、类似C语言的编程语言,简单总结如下:
1、CPL(Combined Programming Language) - 1963
### CPL是1963年剑桥大学发明的
2、BCPL(Base Combined Programming Language) - 1967
### 剑桥的Matin Richards 对CPL做了简化,推出了BCPL
3、B(B Programming Language) - 1969
### 贝尔实验室的Ken Thompson(肯·汤普森) 对BCPL又做了改进,设计出了简单的且接近硬件的B语言,用B语言写了第一个UNIX OS
3、C(C Programming Language) - 1972
### 贝尔实验室的Dennis MacAlistair Ritchie(D.M.Ritchie - DM里奇)在B的基础上设计出了C语言。C 保持了B的优点(精炼、接近硬件),又克服了他的缺点(过于简单,数据无类型)
4、C++(C plus plus Programming Language) - 1983
### 还是贝尔实验室的人,Bjarne Stroustrup(本贾尼·斯特劳斯特卢普) 在C语言的基础上推出了C++,它扩充和完善了C语言,特别是在面向对象编程方面。一定程度上克服了C语言编写大型程序时的不足。
5、Python - 1989
### 1989年的圣诞节期间,吉多·范罗苏姆(Gudio van Rossum,我们称他为“龟叔”)为了在阿姆斯特丹打发时间,决心开发一个新的解释程序,作为ABC语言的继承,他创造了Python语言,并用C语言写出了Python语言的解释器CPython。之所以选择Python作为这么程序语言的名字,是因为龟叔是BBC电视剧——Monty Python's Flying Circus的粉丝。
6、Java(Java Programming Language) - 1995
### Sun公司的Patrick Naughton的工作小组研发了Java语言,主要成员是James Gosling(詹姆斯·高斯林)
7、C#(C Sharp Programming Language) - 2000
### Microsoft公司的Anders Hejlsberg(安德斯·海尔斯伯格)发明了C#,他也是Delphi语言之父。