版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章 计算机和程序设计语言初步开始学习计算机程序设计之前,我们在这个选修的一章中介绍计算机与程序设计语言方面的背景知识。本章介绍从早期计算机到现代计算机发展的简明历史,说明现代计算机的组成,还介绍程序设计语言的简明历史,从低级的机器语言到现在的面向对象的语言。1.1 计算机发展历史人类通过不断发明和使用工具,才从原始社会走进现代社会。石器、火药、机械以及其他发明戏剧性地改变了人类的生活方式。在现代历史中,计算机无疑是最重要的发明。在如今非常先进的社会中,计算机影响着我们一天生活的每一刻:课程安排由计算机制定,学生档案由计算机保存,考试成绩由计算机评分,宿舍安全系统由计算机监控,还有众多影响我
2、们生活的其他功能也是由计算机控制的。 虽然第l台真正的计算机发明于20世纪40年代,但计算机的概念却已经有一百六十多年的历史。查尔斯巴贝奇被认为是发明现代计算机的先驱,1823年他应英国政府的要求设计查分机(Difference Engine),用来计算和处理数学用表。差分机建立在转动齿轮的基础上,由单曲柄操作。遗憾的是由于技术条件的限制,他陷入困境而最终放弃了这个计划。 但是,一个更加宏伟的计划在他的头脑中产生。事实上,放弃差分机的原因之一也是为了用新的概念发明更好的机器。他把这个新机器称之为分析机(Analytical Engine),但是分析机也同样没有制造出来。因为巴贝奇的思想超越了他
3、所处的时代,当时还不存在使分析机成为现实的技术。尽管如此,分析机还是取得了非凡的成就,因为其设计原理与现代计算机相同,它的突出之处是可编程序。差分机只能计算数学用表,而分析机通过打孔卡片输入可以执行任何计算。用打孔卡片的方法输入程序后来被用到真正的计算机,直到二十世纪七十年代仍广泛使用。 虽然分析机从未建成,但其演示程序却已由Ada Lovelace写好,她是诗人拜伦的女儿。Ada程序设计语言就是为了向Lovelace女士表示敬意而命名的,她是第1个计算机程序员。 1930年底,衣阿华州立大学的John Atanasoff与其研究生cifrord Berry制造了第1个机电式计算机。他们的一项
4、创新是使用了二进制数(我们将在下一节讨论)。大约在同一时期,美国哈佛大学的数学教授霍华德艾肯在IBM公司和美国海军的支持下一直致力于研究自动程序控制计算机,就是人们通常所说的MARK I。MARK I在设计上与分析机非常接近,所以被艾肯教授说为:“巴贝奇梦想的实现”。 MARK I也是机电式计算机,它依靠的是继电器。由于继电器的速度不够快,因而MAKEI很快就被基于电子管的计算机取代。第1个真正意义上的电子计算机是ENIAC I(电子数值积分和计算机),在JOhn WMauchly和JPresper Eckert的领导下,诞生于美国宾夕法尼亚大学。他们的设计思想受到John Atansoff的
5、影响和启发。 ENIAC I的程序编制是通过导线插头在控制板上的插拔实现的,如同老式电话的接线台。程序编制要耗费工程师大量的时间,哪怕程序做出简单修改也要花费很长的时间。在程序设计的过程中,昂贵的计算机空闲坐等。为了提高效率,普林斯顿大学的冯诺依曼建议将程序保存计算机的存储器中。这种存储程序的方案不仅提高了计算速度,而且允许用更灵活的方法编写程序。例如,由于程序保存在存储器中,计算机可以改变程序指令,从而改变程序执行的顺序,因此由一个单独的程序得到不同的结果成为可能。 我们把这些以电子管为特征的早期计算机称为“第一代计算机”,第2代计算机在二十世纪五十年代后期开始出现,由晶体管代替电子管。存储
6、器设备的改进同样进一步提高了处理速度。到了六十年代初期,晶体管被集成电路代替,从而出现了第3代计算机。此时的单片集成电路集成了数百个晶体管,使小型机的制造成为可能。小型机可以放置到个人办公室或实验室。而早期的计算机大到轻易地就占满整幢大楼的地下室。 集成电路的进步是非凡的,大规模集成电路,通常被称为“计算机芯片”或“硅片”,其容量相当于数干只晶体管,并且使“单片机”成为现实。使用大规模集成电路的微型计算机出现于二十世纪七十年代中期。今天所说的个人计算机就是七十年代微型计算机的后代。如今个人计算机中使用的计算机芯片封装了相当于几百万个晶体管。个人计算机属于第4代计算机,最初的微型计算机是孤立、独
7、立的机器,单词personal把计算机形容为个人单独使用的设备。然而没过多久,人们就认识到需要共享计算机的资源。例如,早期的微型计算机需要专用的打印机。使许多台计算机共享一台打印机不是更有意义吗?在计算机之间共享数据,而不是在单台计算机上复制相同的数据不是也很有意义吗?在计算机之间发送电子信息不是很好吗?网络计算机的概念为满足这些需要而发展起来。 各种计算机被连接到一个网络。在一个单独的建筑物或几个相邻建筑物连接计算机的网络称为“局域网”(LAN),连接地域分散的计算机的网络称为广域网(WAN)。这些单独的网络可以进一步连接而形成相互连接的网络,称为互联网。最著名的互联网称为Intenet。互
8、联网的出现,使共享世界范围的信息成为可能,且非常容易。在互联网上查看信息所用的最热门工具是web浏览器。你可以用Web浏览器查看由文本、音频、视频和其他类型的信息组成的多媒体信息。我们将在本章最后一节介绍Java如何与Internet和Web浏览器相联系。1.2 计算机体系结构当今一台典型的计算机有5个基本组成部分:RAM、CPU、外部存储设备、输入输出设备和通信设备图0.1说明这5个部分。介绍计算机的组成部分之前,我们首先介绍计算机中使用的二进制数系统。图1.1 典型计算机系统结构简化图1.2.1 二进制数 为了理解二进制数系统,我们首先观察十进位数系统中使用的10个数字:0、1、2、3、4
9、、5、6、7、8、9。为了以十进制表示一个数,我们要使用一个或多个这些数字的序列表达。序列中每个数字的值取决于其所在的位置。例如,考虑234和324这两个数。数字2在第1个数中代表200,而在第2个数中代表20。序列中的每个位置都有一个值,等于10的整数次幂。下面的框图说明如何确定这些位置的值:一个十进制数的值(表示为若干数字的序列)是所有数字与其位置值相乘积的累加和。说明如下: = 2 102 + 4 101 + 8 100 + 7 10-1=2 100 + 4 10 + 8 1 + 7 1/10=200 + 40 + 8 + 7/10 = 248.7 十进制数系统中有10个符号,位置值是1
10、0的整数次幂。我们说10是十进制数系统的基数或基。二进制数系统的原理与十进制一样,但是用2作为其基数。二进制数系统有2个数字(0和1),称为“位(bit),其位置值为2的整数次幂。下面的框图说明如何确定二进制的位置值:二进制数的值(表示为位的序列)是所有二进制位与其位置值乘积的累加和,说明如下:=1 22 + 0 21 + 1 20 + 1 2-1 =1 4 +0 2 + 1 1 + 1 1/2 =4 + 0 + 1 + 1/2 = 5.5 这样二进制数101.1与十进制数5.5等值,这个例子告诉我们如何将一个给定的二进制数转换成等值的十进制数。如何将给定的十进制数转换为等值的二进制数? 下面
11、我们将说明如何将十进制数(仅是整数)转换为等值的二进制数,基本思想如下: 1这个数除以2。 2余数是位置20的二进制位的值。 3商除以2。 4余数是21位置的二进制位的值。 5商除以2。 6余数是22位置的二进制位的值。 7重复这个过程,直到不能再除,即商为0为止。 二进制比十进制更适合于计算机,因为设计辨别二种状态(0和1)的电子设备比辨别十种状态(09)的电子设备容易得多。例如,开关接通代表l,开关断开代表0。在真正的计算机中,0表示为低电平,而l表示为高电平。1.2.2 RAM随机存储器(Random access mermory)是保存程序指令和程序执行过程中所操作数据的仓库。RAM分
12、成若干单位(cell),每个单元有惟一的地址。通常,每个单元由4个字节(byte)组成,每字节由8位(bit)组成。每位既可以为开也可以为关,表示一个单独的二进制位。衡量RAM大小的标准是其包含的字节数。例如16Mb的RAM包含16 210 = 16,777,216字节。我们用术语“兆“(M),即106表示220的值,因为1千(K)=l03,接近于210 = 1024,而106=103 103 210 210 = 220。如果RAM中每个单元有4字节,那么16M的RAM就有4,194,304个单元。1998年,典型的计算机有32M到64M的RAM。1984年生产的第1台苹果计算机只有128K(
13、128 210=131,072字节)的RAM。1.2.3 CPU中央处理器(central processing unit,简称CPU)是计算机的大脑。CPU是执行程序指令的部件,它提取指令(存储在RAM中),执行指令。然后提取下一条指令,再执行,直到遇到停止指令。CPU包含少量的寄存器,寄存器是临时保存数据和指令的高速设备。CPU还包含算术逻辑单元(ALU),它执行诸如加法、减法这样的算术操作和诸如比较两个数的逻辑操作。 CPU以其时钟速度为性能特征。例如,英特尔公司的Pentium 200,其CPU时钟频率为200MHz。赫兹是一种频率单位,相当于每秒一个周期。周期是开或关二种状态之间的时
14、间周期。因此200MHz相当于每秒钟200,000,000个周期。1997年最快的商用个人计算机大约是200MHz。但1998年初,许多商家已经开始出售300MHz的机器。此后仅6个月,即1998年中,顶级个人计算机已经是400MHz的机器了。千年刚刚开始的现在,733MHz CPU的电脑已经在广告和商店中出现。在近20年终CPU速度的提高确实惊人。1974年开始的PC革命中出现的Intel 8080 CPU其时钟速度不过是2MHz,而1995年的Intel Pentium Pro-200的时钟速度应经达到200MHz。表1.1列出一些Intel处理器。表1.1 Intel处理器列表CPU 发
15、布日期 时钟速度4004 11/15/7l 0.1088008 04/0l/72 0.2001970s8080 04/01/74 28088 06/01/79 8 80286 02/0l/82 121980s 80386SX 06/l 6/88 1680486DX 04/10/89 25Pentium 03/22/93 66PentiumPro 11/0l/95 2001990s Pentium II 05/01/91 300Pentitum II Xeon 06/29/98 400Pentium III 10/25/99 733某些同种型号的CPU可能有不同的时钟脉冲速度。在这种情况下,本表
16、只列出速度最快的CPU。有关Intel CPU更多的信息,可以访问http:/ /museum和http://pressroom/kits/processors/quickref.htm。1.2.4 I/O设备 输入/输出(I/O)设备允许用户与CPU之间通信,如键盘和鼠标这样的输入设备用来输入数据、程序和CPU命令,显示器和打印机这样的输出设备用来显示和打印信息。其他I/O设备包括扫描仪、条形码读出器、读卡机、数字摄像机以及乐器指令数字化接口(MIDl)设备。1.2.5 存储设备 诸如磁盘驱动器和磁带机这样的存储设备用来存储数据和程序。辅助
17、存储设备称为“非易性存储器”,而RAM称为“易失性存储器”。易失性意味着当关闭设备电源后存储在设备中的数据将丢失。由于非易失性和比RAM更便宜,所以辅助存储器是永久存储大量数据理想的存储媒体。可是辅助存储器不能取代RAM,因为辅助存储器在数据访问(读出数据和写入数据)速度上大大慢于RAM。 如今用于个人计算机最常见的存储设备是磁盘,磁盘有两种类型:硬盘和软盘。硬盘速度快、容量大,但通常不能移动,即硬盘永久连接到磁盘驱动器上。而软盘是可移动的,但是其速度远慢于硬盘,容量也远远小于硬盘。由于标准的软盘最多只能保存约144Mb,因此在当今动辄若干兆字节的图像和声音文件面前,其用途越来越少。硬盘可以存
18、储数量巨大的数据,1999年标准桌面PC所使用的硬盘容量通常是43Gb(10亿字节,10亿=109)到135Gb。一些新型磁盘驱动器使用可移动磁盘,其容量一般从100Mb到1Gb,其性能可与固定硬盘相媲美。 光盘(CD)也是当前使用非常普遍的存储媒体,其存储量较大,大约660Mb。如今购买的许多软件包计算机游戏、字处理程序和其他软件一般是装在一张光盘上。在CD成为流行的计算机存储设备之前,某些软件需要的软盘超过20张。由于其巨大的存储能力,所以目前许多计算机厂家不再提供印刷的使用手册,而是将其放到光盘中。1.2.6 通信设备通信设备将个人计算机连接到网络,对家庭和小型办公用计算机来说,最常见的
19、通信设备是调制解调器(modem)。调制解调器意指调制解调,是将模将拟信号转换为数字信号,将数字信号转换为模拟信号的设备。利用调制解调器,计算机可以通过电话线将数据发送到另一台计算机,也可以从另一台计算机接收数据。调制解调器最重要的特性是传输速度,以波特率(bps)衡量。1999年市场上销售的调制解调器传输速度范围通常从14,400bps到56,000bps。如果需要将计算机连接到Internet,你不会愿意使用低于28,800bps的调制解调器。因为用其传递1Mb的文件就是在理想条件下(没有干扰和网络阻塞)也需要大约5分钟,而实际使用时往往需要更多的时间。 连接计算机到LAN的通信设备是网络
20、接口卡(NIC),网络接口卡传输数据的速度比调制解调器快很多。例如,一种称为10BaseT的NIC在网络上传输数据的速率可以达到10Mbps。1.3 程序设计语言程序设计语言粗略地分为三级:机器语言,汇编语言和高级语言。机器语言是CPU理解的惟一的程序设计语言。每种CPU都有其自己的机器语言。例如Intel的Pentium和Motorola的PowerPC各有不同的机器语言。机器语言指令以二进制编码,而且非常低级一条机器指令只能把一个存储器位置的内容传送到CPU的一个寄存器或在两个寄存器中执行加法运算,因此我们必须提供许多机器语言指令才能完成一个简单的任务。如求20个数的平均值。一个以极其语言
21、指令编写的程序可能类似如下:l l 比机器语言高一个级别的是汇编语言,它允许“高级的”符号程序设计。汇编语言允许程序员利用符号操作码编写程序,而不是将程序写为二进制位的序列。例如,我们用MV传送存储单元的内容到寄存器,而不是用,还也可以用符号或助记符命名寄存器和内存单元。以汇编语言编写的程序类似如下: MV 0,SUM MV NUM,AC ADDSUM, AC STOSUM, TOT 由于CPU不理解以汇编语声写出的程序,因此我们要用汇编程序将以汇编语言编写的程序翻译为等价的机器语言。与以1机器语言编写程序相比较,以汇编语言编写程序已经快多了,但是对编写复杂的程序而言还不够快。高级语言的出现使
22、程序员编写程序更快。例如,FORTRAN(FORmula TRANslator),一种为数学计算设计的程序设计语言,它允许程序员直接表达数字方程为: x=(Y+Z)2COBOL(Common Business Oriented Language,面向商业的通用语言)是为商业数据处理应用设计的程序设计语言。FORTRAN和COBOL是50年代末和60年代初开发的,直到现在仍在使用。BASIC(Beginners All-purpose Symbolic Instructional code,初学者通用符号指令码)是特别为学生学习和使用开发的一种比较容易的语言。BASIC是微型机可以使用的第1种高级语言。另一个著名的高级语言是Pascal,它设计为一种教学语言。由于CPU不理解以高
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 香格里拉职业学院《税收信息化实务》2024-2025学年第二学期期末试卷
- 5.12条件计算(教学设计)-信息技术五年级下册同步备课(浙教版)
- 机构研究报告-中国教育行业市场前景及投资研究报告:AI实战手册
- 有色金属配料工安全生产能力考核试卷含答案
- 固碱工风险评估测试考核试卷含答案
- 客车检车员安全实践竞赛考核试卷含答案
- 物料输送及烟气净化工安全实操能力考核试卷含答案
- 重轨加工工安全宣教能力考核试卷含答案
- 证券期货服务师保密意识能力考核试卷含答案
- 动态检车员岗前沟通技巧考核试卷含答案
- 2025下半年教师资格考试(初中信息技术)新版真题卷附答案
- 《滩海陆岸石油设施检验技术规范》
- 《脓毒症标准化动物模型》
- 厂区驾驶员安全培训试题及答案解析
- 液压升降机设计技术说明书
- 2025年及未来5年中国高压开关制造行业发展监测及投资方向研究报告
- 美发店股份合伙协议书
- 配网施工方案(3篇)
- 养殖企业疫病防控应急预案
- 2025-2026年【秋】第一学期英语教研组工作计划:“英”为有你共成长“语”你同行绽芳华
- 浙江省宁波市慈溪市2024-2025学年七年级下学期期末数学试题
评论
0/150
提交评论