【新书推荐】1.1 计算机发展史

第一部分 预备知识

计算机系统分为硬件系统和软件系统,二者相辅相成。本书讲述X86汇编语言是众多计算机编程语言中的一种,属于计算机软件系统。汇编语言是计算机发明后除了机器语言之外的第一种编程语言,其他计算机编程语言都是在其基础上发展而来。我们学习汇编语言也就是从计算机编程的最底层开始学起了。

那么何谓计算机编程语言呢?计算机编程语言与人类语言相似,人类语言用于人与人之间的信息交互。计算机编程语言用于人与计算机之间的信息交互。人类通过使用逻辑严谨的计算机编程语言编写计算机程序,控制和操作计算机的运行,实现某种特定的功能。我们把编写计算机程序的人称为程序员,这也是诸位读者学习本书内容的目的了。

既然计算机程序是计算机运行的控制指令,当我们在编写计算机程序时必然是各种计算机硬件控制指令的集合。这些指令是由计算机的“大脑”CPU厂商提供的。我们学习和熟练使用这些指令的前提是熟悉和了解计算机各个硬件组成的工作原理和控制方法。接下来就让我们从了解计算机开始吧。

1.1 计算机发展史

本节内容:了解计算机的发展历史。

古代计数方法:数手指、结绳计数、算筹、算盘。

近代机械式计算机:帕斯卡、莱布尼茨、查尔斯·巴贝奇。

现代电子计算机:德福雷斯特发明了电子管,1924年IBM成立,霍德华·艾肯发明的马克1号,“埃尼阿克”第一台通用计算机,图灵发明了图灵机。

电子计算机的四个发展阶段:电子管、晶体管、集成电路、大规模集成电路。

1.1.1 了解计算机的过去现在和未来

计算机是我们人类文明发展的结晶。当今的世界处处充满了计算机构建的数字网络,我们身处其中。在我们正式开始学习之旅前,我们先了解一下计算机的过去、现在和未来。计算机顾名思义,主要的作用是用来计算,而计算是从数数开始的。首先,我们来看一下古人是如何进行计数的。

机械式计算机之前,古人的四种计数方法:

数手指

是否还记得,我们在幼儿时是从数手指开始学习数学知识的。我们人类有10根手指,并且使用手指来计数,通常是从一开始数的,一二三四五六七八九十。十进制自然就成为我们最熟悉,也最常用的进制形式。有一个问题,数手指这种方法如何来表示超过10的数呢?比如11、102、1003 ……?此时,我们就会发现数手指的方法是有弊端的。毕竟我们人类只有十根手指。假设真的有外星人存在,且并不像我们人类一样有10根手指,大概率不会采用十进制计数的方法了。接下来我们看第二种计数方法。

结绳计数

    

                                                                          图1-1 四种计数方法

结绳计数是用绳子打成各种不同形状的结,来表示对应的数字。如图1-1所示结绳计数,上面一行绳结表示一到十,下面一行绳结表示十、二十、三十、千、百、万。不同的绳结组合后可以表示任意数字。接着我们来看第三种计数方法。

算筹

什么是算筹呢?筹就是小数棒的意思,算筹就是用来计数的小数棒。

如图1-1所示算筹,小数棒有两种摆放的方法,我们可以横着放也可以竖着放。分别来表示0到9 十个符号。

祖冲之就是利用算筹这种形式来计算圆周率的。注意,此时已经有了0的概念了。0的出现标志着我们人类一个巨大的进步。在我们数手指或者结绳计数的时代并没有0的概念。到了公元400-500年之间,中国才有了0的概念,而且也有了符号的概念。符号就是将手指、绳结、小树棒抽象化为方便读写的计数符号。

科普一下,我们现在日常使用的阿拉伯数字是由印度人发明,在宋代由阿拉伯人传入中国的。接下来我们再看第四种计数方法算盘。

算盘

算盘最早是由东汉末数学家徐岳发明的,可以看作是早期的计算机。可以进行计数,也可以用来进行十六进制或十进制加减乘除算术运算。如图1-1所示算盘,算盘上面有两个珠子,下面有5个珠子。算盘是如何进行计算的呢?其实非常简单,我们只需要去记住加法口诀表和乘法口诀表就可以进行加减乘除计算。加减乘除算术运算其实本质就是查数查表。

  总结

  手指、结绳、算筹和算盘都是使用具体的实物来计数,当我们将这些实物抽象为可书写的符号时,我们就可以很方便地进行加减乘除算术运算。我们将在第二章学习数据的表示方法和算术运算,第三章学习逻辑运算。

机械式计算机:

●1642年,法国数学家帕斯卡19岁时发明了人类有史以来第一台机械式计算机——帕斯卡加法器。帕斯卡加法器是由齿轮组成,以发条为动力,通过转动齿轮来实现加减运算,用连杆实现进位的计算装置。Pascal编程语言的命名就是为了纪念这位杰出的数学家。

●1674年德国的大数学家莱布尼茨在帕斯卡基础上,发明了可以连续重复计算加减法的步进计算器,这也是现代计算机做乘除法采用的办法,加减乘除四则运算一应俱全。据说是参考了中国的阴阳八卦二进制原理。步进计算器如图1-2所示。

●1822年英国数学家、发明家Charles Babbage(查尔斯·巴贝奇)发明第一台差分机,它可以处理3个不同的5位数,计算精度达到6位小数。后来巴贝奇又设计了更复杂的分析机,采用的一些计算机思想,如输入输出、数据存储等延用至今。他设计出来的输入输出、数据存储的概念机太超前了。由于当时制造工艺不够成熟,没有建造成功。但是,这种“自动计算机”的概念是一个跨时代的概念,预示现代计算机的诞生。差分机和分析机如图1-3、1-4所示。

                                                        图1-2 莱布尼茨步进计算器

       

                       

                                                        图1-3查尔斯.巴贝奇 差分机                                                                     

                                                        图1-4查尔斯.巴贝奇 分析机

1.1.2 电子计算机

■1906年,美国的德福雷斯特发明了电子管,为电子计算机的发明奠定了基础。其控制速度要比艾肯发明的继电器快成千上万倍。

■1924年,IBM—— 一个有划时代意义的公司成立了。

■1936年,美国青年霍德华·艾肯发明的马克1号机械/电动方式计算机在哈佛大学正式运行。继电器接通电路表示“1”,继电器断开则表示“0”。马克1号被称为最后一台“史前”计算机。

■1946年2月14日,“埃尼阿克”(ENIAC,译成中文是“电子数字积分计算机”)是世界上第一台通用计算机,第二台电子计算机。“埃尼阿克”诞生于美国宾夕法尼亚大学。但是在1973年,美国联邦地方法院注销了ENIAC的专利,并得出结论:ENIAC的发明者从阿塔纳索夫那里继承了电子数字计算机的主要构件思想。因此,1937年设计,1942年成功测试的“ABC”被认定为世界上第一台电子计算机。

■1939年,英国数学家图灵发明了图灵机。图灵被称为计算机科学之父,人工智能之父。人工智能的定义为:如果第三者无法分辨,是机器给出的答案,还是人类给出的答案,就可以认为机器具有智能。

1942年,图灵实现了第一个人机对抗的国际象棋程序。

1997 年5 月11 日,IBM 的国际象棋电脑“深蓝”在一次正式比赛中打败了世界冠军加里·卡斯帕罗夫。“深蓝”可以实现每秒两亿步的计算。当时, 这是国际象棋电脑能实现的最快计算速度。此后,人工智能便广为流传。

提示

我们会在下一阶段C语言的课程中编写一个人机对抗的扑克牌游戏。完成项目之后,就可以明白此类人工智能程序的实现方法了。

1.1.3 电子计算机发展的四个阶段

第一代电子管计算机(1946~1958 

特点: 操作指令是为特定任务而编制的,每种机器有各自不同的机器语言,功能受到限制,速度也慢。另一个明显特征是使用真空电子管和磁鼓储存数据。

第二代晶体管计算机 (1958-1964

特点: 晶体管代替了体积庞大电子管,使用磁芯存储器。体积小、速度快、功耗低、性能更稳定。还有现代计算机的一些部件:打印机、磁带、磁盘、内存、操作系统等。在这一时期出现了更高级的COBOL和FORTRAN等编程语言,使计算机编程更容易。新的职业(程序员、分析员和计算机系统专家)和整个软件产业由此诞生。

第三代集成电路计算机 (1964-1971

以中小规模集成电路,来构成计算机的主要功能部件。主存储器采用半导体存储器。运算速度可达每秒几十万次至几百万次基本运算。在软件方面,操作系统日趋完善。

第四代大规模集成电路计算机 (1971-至今)

从1970年以后采用大规模集成电路(LSI)和超大规模集成电路(VLSI)为主要电子器件制成的计算机,重要分支是以大规模、超大规模集成电路为基础发展起来的微处理器和微型计算机。

发展阶段

逻辑元件

主存储器

运算速度(每秒)

软件

应用

第一代(1946-1958)

电子管

电子射线管

几千次到几万次

机器语言、汇编语言

军事研究、科学计算

第二代(1958-1964)

晶体管

磁芯

几十万次

监控程序、高级语言

数据处理、事务处理

第三代(1964-1971)

中小规模集成电路

半导体

几十万次到几百万次

操作系统、编辑系统、应用程序

有较大发展开始广泛应用

第四代(1971-今)

大规模超大规模集成电路

集成度更高的半导体

上千万次到上亿次

操作系统完善、数据库系统、高级语言发展、应用程序发展

渗入社会各级领域

                                                表1-1 电子计算机发展阶段

从表1-1中,我们可以清晰的看到,电子计算机的发展分为硬件和软件两个部分。随着计算机硬件的发展,更高性能的计算机不断快速的迭代更新。与之相应,计算机软件也在快速迭代,并且计算机应用已经渗入到我们整个人类社会的各个领域。

未来计算机

基于集成电路的计算机短期内还不会退出历史舞台。一些新的计算机正在跃跃欲试地登上历史舞台。这些计算机有:超导计算机纳米计算机光学计算机DNA计算机量子计算机等。目前最寄予厚望的当属量子计算机了。有兴趣的读者可以查阅相关资料,此处不再赘述。

总结

 计算机最初的功能就是用来进行算术逻辑运算。随着计算机性能的快速发展,以及计算机软件的发展,计算机应用的领域也越来越广泛。程序员这种职业也在这个过程中逐步壮大。

  图1-5、1-6、1-7、1-8分别为第一代至第四代计算机。

                                                        图1-5 第一代电子管计算机                                                   

                                                          图1-6 第二代晶体管计算机

       

                                                                图1-7 第三代中小规模集成电路                              

                                                             图1-8 第四代大规模集成电路计算机

本文摘自编程达人系列教材《X86汇编语言程序设计》。

  • 20
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值