计算机英语(第4版)课文翻译与课后答案

更新时间:2023-11-11 18:53:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一部分 《计算机英语》参考译文

第一单元:计算机与计算机科学

课文A:计算机概览

一、引言

计算机是一种电子设备,它能接收一套指令或一个程序,然后通过对数字数据进行运算 或对其他形式的信息进行处理来执行该程序。

要不是由于计算机的发展,现代的高科技世界是不可能产生的。不同类型和大小的计算 机在整个社会被用于存储和处理各种数据,从保密政府文件、银行交易到私人家庭账目。计 算机通过自动化技术开辟了制造业的新纪元,而且它们也增强了现代通信系统的性能。在几 乎每一个研究和应用技术领域,从构建宇宙模型到产生明天的气象报告,计算机都是必要的 工具,并且它们的应用本身就开辟了人们推测的新领域。数据库服务和计算机网络使各种各 样的信息源可供使用。同样的先进技术也使侵犯个人隐私和商业秘密成为可能。计算机犯罪 已经成为作为现代技术代价组成部分的许多风险之一。 二、历史

第一台加法机是法国科学家、数学家和哲学家布莱斯?帕斯卡于1642年设计的,它是数 字计算机的先驱。这个装置使用了一系列带有10个齿的轮子,每个齿代表从0到9的一个数字。

轮子互相连接,从而通过按照正确的齿数向前转动轮子,就可以将数字彼此相加。17世纪70年代,德国哲学家和数学家戈特弗里德?威廉?莱布尼兹对这台机器进行了改良,设计了一台也能做乘法的机器。

法国发明家约瑟夫―玛丽?雅卡尔,在设计自动织机时,使用了穿孔的薄木板来控制复 杂图案的编织。在19世纪80年代期间,美国统计学家赫尔曼?何勒里斯,想出了使用类似雅卡尔的木板那样的穿孔卡片来处理数据的主意。通过使用一种将穿孔卡片从电触点上移过的系统,他得以为1890年的美国人口普查汇编统计信息。 1、分析机

也是在19世纪,英国数学家和发明家查尔斯?巴比奇,提出了现代数字计算机的原理。 他构想出旨在处理复杂数学题的若干机器,如差分机。许多历史学家认为,巴比奇及其合伙 人,数学家奥古斯塔?埃达?拜伦,是现代数字计算机的真正先驱。巴比奇的设计之一,分析 机,具有现代计算机的许多特征。它有一个以一叠穿孔卡片的形式存在的输入流、一个保存 数据的“仓库”、一个进行算术运算的“工厂”和一个产生永久性纪录的打印机。巴比奇未 能将这个想法付诸实践,尽管在那个时代它在技术上很可能是可行的。 2、早期的计算机

模拟计算机是19世纪末开始制造的。早期型号是靠转动的轴和齿轮来进行计算的。用任 何其他方法都难以计算的方程近似数值,可以用这样的机器来求得。开尔文勋爵制造了一台 机械潮汐预报器,这实际上就是一台专用模拟计算机。第一次和第二次世界大战期间,机械 模拟计算系统,以及后来的电动模拟计算系统,在潜艇上被用作鱼雷航线预测器,在飞机上 被用作轰炸瞄准具的控制器。有人还设计了另一个系统,用于预测密西西比河流域春天的洪 水。

3、电子计算机

第二次世界大战期间,以伦敦北面的布莱切利公园为工作地点的一组科学家和数学家, 制造了最早的全电子数字计算机之一:“巨人”。到1943年12月,这个包含了1500个真空管的“巨人”开始运转了。它被以艾伦?图灵为首的小组用于破译德国用恩尼格码加密的无

1

线电报,他们的尝试大部分是成功的。

除此而外,在美国,约翰?阿塔纳索夫和克利福德?贝里早在1939年就在艾奥瓦州立学院 制造了一台原型电子机。这台原型机和后来的研究工作都是悄悄完成的,而且后来因1945年电子数字积分计算机(ENIAC)的研制而显得相形见绌。ENIAC被授予了专利。但是,数十年后,在1973年,当该机被揭露吸收了在阿塔纳索夫―贝里计算机中首次使用的原理后,这项专利被废除了。

图1 A - 1:E N IAC是最早的全电子数字计算机之一。

ENIAC(见图1A-1)含有18,000个真空管,具有每分钟几百次的乘法运算速度,但是, 其程序最初是通过导线传送到处理器内的,必须由人工更改。根据美籍匈牙利数学家约翰? 冯?诺伊曼的想法,后来制造的机器带有一个程序存储器。指令像数据一样存储在“存储器” 中,使计算机在执行过程中摆脱了纸带阅读器的速度限制,并使问题在不给计算机重新接线 的情况下得以解决。

20世纪50年代末,晶体管在计算机中的应用,标志着比在真空管机器情况下体积小、速 度快、用途广的逻辑元件的出现。由于晶体管使用的功率小得多,寿命也长得多,仅这项发 展本身就导致了被称之为第二代计算机的改良机器的产生。元件变小了,元件的间距也变小 了,而且系统的制造成本也变得低得多。 4、集成电路

20世纪60年代末,集成电路(见图1A-2)得到采用,从而有可能将许多晶体管制作在一 块硅衬底上,晶体管之间用覆镀在适当位置的导线相连接。集成电路导致价格、尺寸和故障 率的进一步降低。20世纪70年代中期,随着大规模集成电路和后来的超大规模集成电路(微 芯片)的采用,成千上万个彼此相连的晶体管被蚀刻在一块硅衬底上,于是微处理器成为现 实。

图1 A - 2:集成电路

那么,再回过头来看看现代计算机处理开关值的能力:20世纪70年代的计算机一般一次 能够处理8个开关值。也就是说,在每个循环中,它们能处理8个二进制数字或位的数据。8个位为一组,称为一个字节;每个字节包含256个开与关(或0与1)的可能模式。每个模式相当于一条指令、一条指令的一部分或者一个特定的数据类型,如一个数字、一个字符或一个图形符号。例如,11010010这个模式可能是二进制数据——在此情况下代表210这个十进制数字,或者它可能是一条指令,告诉计算机将存储在其交换设备中的数据与存储在存储芯片某个位置的数据进行比较。

一次能处理16、32和64位数据的处理器的研制,提高了计算机的速度。一台计算机能够 处理的全部可识别模式——操作总清单——称为其指令集。随着现代数字计算机的不断发 展,这两个因素——能够同时处理的位数和指令集的大小——在继续增长。 三、硬件

不论尺寸大小,现代数字计算机在概念上都是类似的。然而,根据成本与性能,它们可 分为几类:个人计算机或微型计算机,一种成本较低的机器,通常只有桌面大小(尽管“膝 上型计算机”小到能够放入公文包,而“掌上型计算机”能够放入口袋);工作站,一种具 有增强型图形与通信能力、从而使其对于办公室工作特别有用的微型计算机;小型计算机, 一般就个人使用而言太昂贵,其性能适合于工商企业、学校或实验室;以及大型机,一种大 型的昂贵机器,具有满足大规模工商企业、政府部门、科研机构或者诸如此类机构需要的能 力(其中体积最大、速度最快的称为巨型计算机)。

一台数字计算机不是单一的机器。确切地说,它是由5个不同的要素组成的系统:(1) 中央处理器;(2)输入设备;(3)存储设备;(4)输出设备;以及(5)被称作总线的通信 网络,它将系统的所有要素连接起来并将系统与外界连接起来。

2

四、编程

一个程序就是一系列指令,告诉计算机硬件对数据执行什么样的操作。程序可以内嵌在 硬件本身里,或以软件的形式独立存在。在一些专门或“专用”计算机中,操作指令被嵌入 其电路里;常见的例子有计算器、手表、汽车发动机和微波炉中的微型计算机。另一方面, 通用计算机尽管含有一些内置的程序(在只读存储器中)或者指令(在处理器芯片中),但 依靠外部程序来执行有用的任务。计算机一旦被编程,就只能做在任何特定时刻控制它的软 件所允许它做的事情。广泛使用的软件包括一系列各种各样的应用程序——告诉计算机如何 执行各种任务的指令。 五、未来的发展

计算机发展的一个持续不断的趋势是微小型化,亦即将越来越多的电路元件压缩在越来 越小的芯片空间内的努力。研究人员也在设法利用超导性来提高电路的功能速度。超导性是 在超低温条件下在某些材料中观察到的电阻减小现象。

计算机发展的另一个趋势是“第五代”计算机的研制工作,亦即研制可以解决复杂问题 而且其解决方法用“创造性的”这个词来形容或许最终名副其实的计算机,理想的目标是真 正的人工智能。正在积极探索的一条道路是并行处理计算,亦即利用许多芯片来同时执行数 个不同的任务。一种重要的并行处理方法是模仿神经系统结构的神经网络。另一个持续不断 的趋势是计算机联网的增加。计算机联网现在使用由卫星和电缆链路构成的世界范围的数据 通信系统,来将全球的计算机连在一起。此外,大量的研究工作还投入在探索“光”计算机 的可能性上——这种硬件处理的不是电脉冲而是快得多的光脉冲。

第二单元:计算机体系结构

课文A:计算机硬件

一、引言

计算机硬件是计算机运行所需要的设备,由可被物理操纵的部件组成。这些部件的功能 一般分为3个主要类别:输入、输出和存储。这些类别的部件与微处理器相连接,特别是与 计算机的中央处理器相连接。中央处理器系电子线路,它通过称为总线的线路或电路来提供 计算能力和对计算机进行控制。

另一方面,软件是计算机用来处理数据的一套指令,如文字处理程序或电子游戏。这些 程序通常被存储起来,并由计算机硬件调入和调出中央处理器。软件也控制着硬件如何利用: 例如,如何从存储设备中检索信息。输入与输出硬件的交互是由基本输入/输出系统(BIOS) 软件控制的。

尽管微处理器在技术上仍被认为是硬件,但其部分功能也与计算机软件有关系。既然微 处理器同时具有硬件与软件的特征,它们因此经常被称作固件。 二、输入硬件

输入硬件由给计算机提供信息和指令的外部设备——亦即计算机中央处理器以外的部

件——组成。光笔是带有光敏端头的输入笔,用来在计算机显示屏上直接写画,或者通过按 光笔上的夹子或用光笔接触屏幕来在屏幕上选择信息。这种笔含有光传感器,用于识别笔所 经过的屏幕部分。鼠标是为一只手抓握而设计的指示设备。它在底部有一个检测装置(通常 是一个圆球),使用户能够通过在一个平面上移动鼠标来控制屏幕上指针或光标的运动。该 装置滑过平面时,光标随着在屏幕上移动。要在屏幕上选择项目或命令,用户就点击鼠标上 的按钮。操纵杆是由一根杆子组成的指示设备,该杆以向多个方向移动来操纵计算机屏幕上 的光标或者其他图形对象。键盘是一个像打字机的设备,它使用户得以向计算机键入文本和 命令。有些键盘有特殊功能键或集成指示设备,如轨迹球或者可以让用户通过手指的移动来 移动屏幕上光标的触敏区。

3

光扫描仪利用光感应设备将图片或文本等形式的图像转换成计算机能够处理的电子信

号。例如,一张照片可以扫入一台计算机,然后包括在该计算机创建的文本文件中。两种最 常见的扫描仪类型是平板扫描仪和手持式扫描仪,前者类似一台办公室用复印机,后者用手 动的方式从要处理的图像上扫过。麦克风是将声音转换成可被计算机存储、处理和回放的信 号的设备。语音识别模块是将话语转换成计算机能够识别和处理的信息的设备。

调制解调器代表调制器―解调器,是将计算机与电话线连接、允许信息传送给或接收自 另一台计算机的设备。每台发送或接收信息的计算机都必须与调制解调器相连接。一台计算 机发送的信息由调制解调器转换成音频信号,然后通过电话线传送到接收端调制解调器,由 其将信号转换成接收端计算机能够理解的信息。 三、输出硬件

输出硬件由将信息从计算机中央处理器传给计算机用户的外部设备构成。视频显示器或 屏幕将计算机生成的信息转换成可视信息。显示器一般有两种形式:阴极射线管视频屏幕和 液晶显示视频屏幕。基于阴极射线管的屏幕或监视器看起来就像一台电视机。从中央处理器 输出的信息,使用电子束显示出来,其过程是电子束扫描荧光屏,而荧光屏则发出光并产生 图像。基于液晶显示器的屏幕将可视信息显示在比基于阴极射线管的视频监视器平且小的屏 幕上。液晶显示器常常用于膝上型计算机。

打印机将计算机输出的文本和图像打印在纸上。点阵打印机使用细小的金属丝打击色

带,从而形成字符。激光打印机使用光束在磁鼓上画图像,然后由磁鼓吸起称为墨粉的微小 黑粒。墨粉熔凝到纸上,形成图像。喷墨打印机将小墨滴喷射到纸上,形成字符和图像。 四、存储硬件

存储硬件永久性地存储信息和程序,供计算机检索。两种主要的存储设备是磁盘驱动器 和存储器。磁盘驱动器有几种类型:硬盘、软盘、磁光盘和光盘。硬盘驱动器将信息存储在 盘中嵌入的磁性颗粒中。硬盘驱动器通常是计算机的固定部分,能存储大量的信息并对其进 行非常快速的检索。软盘驱动器也将信息存储在磁性颗粒中,但这些颗粒是嵌入可移动的盘 中的,而这些盘既可能是软的也可能是硬的。软盘比硬盘存储的信息少,检索该信息的速度 也慢得多。磁光盘驱动器将信息存储在对激光和磁场均敏感的可移动盘上。它们可存储的信 息通常与硬盘一样多,但检索速度稍微慢一点。由反射材料制成的光盘,其表面烧蚀出凹陷 区。光盘驱动器(只读光盘存储器,CD-ROM)就是将信息存储于此。存储在只读光盘存储 器上的信息不能擦除或用新信息盖写。它们能够存储和硬盘驱动器差不多的信息量,但信息 检索速度比其慢。

存储器指存储信息供中央处理器快速检索的计算机芯片。随机存储器(RAM)用来存储 操作计算机程序的信息和指令。通常,程序由磁盘驱动器的存储区调到随机存储器中。随机 存储器也称作易失性存储器,因为当计算机的电源关闭时,计算机芯片中的信息随着丢失。 只读存储器(ROM)包含必须永久性可供计算机操作使用的关键信息和软件,如从开机到关

机一直指挥计算机运行的操作系统。只读存储器叫做非易失性存储器,因为当计算机的电源 关闭时,存储芯片中的信息不会丢失。

有些设备有不止一种用途。例如,软盘也可用作输入设备,如果它们含有计算机用户要 使用和处理的信息的话。此外,它们也可用作输出设备,如果用户想将计算结果存储在它们 上面的话。

五、硬件的连接

要想运转,硬件需要物理连接,使部件之间能够通信和交互。总线提供了一种常见的互 连系统。它由一组导线或电路组成,在计算机的内部组成部分之间协调和移动信息。计算机 总线由两条通道组成:一条由中央处理器用来给数据定位,叫做地址总线;另一条用来将该

4

数据送往那个地址,叫做数据总线。总线可用两个特征来描述:一次可以处理的信息量—— 称为总线宽度,以及传送这些数据的速度。

串行连接是一根或一组导线,用于将信息从中央处理器传送到外部设备,如鼠标、键盘、 调制解调器、扫描仪和一些类型的打印机。这种连接一次只能传送一段数据,因此比较慢。 使用串行连接的好处在于它能提供远距离的有效连接。

并行连接使用多组导线来同时传送数个信息块。多数扫描仪和打印机使用这种连接方

式。并行连接比串行连接速度快得多,但它仅限于中央处理器和外部设备之间不到3米(10 英尺)的距离。

第三单元:计算机语言与编程

课文A:编程语言 一、引言

在计算机科学中,编程语言是用于编写可由计算机运行的一系列指令(计算机程序)的 人工语言。与英语等自然语言相类似,编程语言有词汇、语法和句法。然而,自然语言不适 合为计算机编程,因为它们会引起歧义,也就是说它们的词汇和语法结构可能被用多种方式 进行解释。用于计算机编程的语言必须有简单的逻辑结构,它们的语法、拼写和标点符号规 则必须精确。

编程语言在复杂性和通用程度上差异很大。一些编程语言是为了处理特定类型的计算问 题或为了用于特定型号的计算机系统而编写的。例如,FORTRAN和COBOL等编程语言是为解决某些普遍的编程问题类型而编写的——FORTRAN是为了科学领域的应用,而COBOL是为了商业领域的应用。尽管这些语言旨在处理特定类型的计算机问题,但它们具有很高的可移植性,也就是说它们可以用来为多种类型的计算机编程。其他的语言,如机器语言,是为一种特定型号的计算机系统,甚至是一台特定的计算机,在某些研究领域使用而编写的。最常用的编程语言具有很高的可移植性,可以用于有效地解决不同类型的计算问题。像C、PASCAL和BASIC这样的语言就属于这一范畴。 二、语言类型

编程语言可分为低级语言和高级语言。低级编程语言或机器语言,是编程语言中最基础 的类型,可以被计算机直接理解。机器语言视计算机制造商与型号不同而有所区别。高级语 言是必须首先翻译成机器语言计算机才能理解和处理的编程语言。C、C++、PASCAL和 FORTRAN都是高级语言的例子。汇编语言是中级语言,非常接近于机器语言,没有其他高 级语言所表现出的语言复杂程度,但仍然得翻译成机器语言。 1、机器语言

在机器语言中,指令被写成计算机能够直接理解的1和0(称作位)序列。一条机器语言 指令一般告诉计算机4件事:(1)到计算机主存(随机存储器)的什么位置去找一两个数字 或简单的数据片;(2)要执行的简单操作,如将两个数字相加;(3)在主存的什么位置存 放该简单操作的结果;(4)到什么位置去找下一条要执行的指令。尽管所有的可执行程序 最终都是以机器语言的形式被计算机读入的,但它们并非都是用机器语言编写的。直接用机 器语言编程极端困难,因为指令是0和1的序列。一条典型的机器语言指令可能写成10010 1100 1011,意思是把存储寄存器A的内容加到存储寄存器B的内容中。 2、高级语言

高级语言是相对复杂的一系列语句,它们使用来自人类语言的词汇和句法。高级语言比 汇编语言或机器语言类似于正常的人类语言,因此用高级语言来编写复杂的程序比较容易。 这些编程语言可以更快地开发更大和更复杂的程序。然而,高级语言必须由称为编译器的另

5

外一种程序翻译成机器语言,计算机才能理解它们。因为这个原因,与用汇编语言编写的程 序相比较,用高级语言编写的程序可能运行时间长,占用内存多。 3、汇编语言

计算机程序员通过使用汇编语言,使机器语言程序比较容易编写。在汇编语言中,每个 语句大致对应于一条机器语言指令。汇编语言的语句是借助易于记忆的命令编写的。在一个 典型的汇编语言语句中,把存储寄存器A的内容加到存储寄存器B的内容中这一命令,可能写成ADD B, A。汇编语言与机器语言具有某些共同的特征。例如,对特定的位进行操控,用汇编语言和机器语言都是可行的。当尽量减少程序的运行时间很重要时,程序员就使用汇编语言,因为从汇编语言到机器语言的翻译相对简单。汇编语言也用于计算机的某个部分必须被直接控制的情况,如监视器上的单个点或者单个字符向打印机的流动。 三、高级语言的分类

高级语言通常分为面向过程语言、函数式语言、面向对象语言或逻辑语言。当今最常见 的高级语言是面向过程语言。在这种语言中,执行某个完整功能的一个或多个相关的语句块 组成一个程序模块或过程,而且被给予诸如“过程A”一类名称。如果在程序的其他地方需 要同样的操作序列,可以使用一个简单的语句调回这个过程。实质上,一个过程就是一个小 型程序。一个大型程序可以通过将执行不同任务的过程组合在一起而构成。过程语言使程序 变得比较短,而且比较容易被计算机读取,但要求程序员将每个过程都设计得足够通用,能 用于不同的情况。

函数式语言像对待数学函数一样对待过程,并允许像处理程序中的任何其他数据一样处 理它们。这就使程序构造在更高、更严密的水平上得以实现。函数式语言也允许变量——在 程序运行过程中可以被用户指定和更改的数据符号——只被赋值一次。这样,通过减少对语 句执行的确切顺序给予关注的必要性,就简化了编程,因为一个变量没有必要每次在一个程 序语句中用到,都重新声明或重新说明。来自函数式语言的许多思想已经成为许多现代过程 语言的关键部分。

面向对象语言是函数式语言的发展结果。在面向对象语言中,用来编写程序的代码和由 程序处理的数据,组合成叫做对象的单元。对象进一步组合成类,而类则定义对象必须具有 的属性。类的一个简单例子就是书这个类。这个类中的对象可能是小说和短篇小说。对象还 有某些与其相关的功能,称为方法。计算机通过使用一个对象的某种方法来访问该对象。方 法对对象中的数据执行某种操作,然后将值返回给计算机。对象的类也可进一步组合成层, 而在层中一个类的对象可继承另一个类的方法。面向对象语言提供的这种结构,使该语言对 于复杂的编程任务非常有用。

逻辑语言将逻辑用作其数学基础。逻辑程序由事实组和“如果―则”规则构成,“如果― 则”规则具体说明一组事实如何可以从其他事实组中推断出来,例如: 如果X语句为真,则Y语句为假。

在这样一个程序的执行过程中,一条输入语句可以按照逻辑从程序中的其他语句推断出 来。许多人工智能程序使用这种语言编写。 四、语言结构与成分

编程语言使用特定类型的语句或指令,来给程序提供功能结构。程序中的一个语句是表 达一个简单想法的基本句子——它的目的是给计算机一条基本指令。语句定义所允许的数据 类型、数据如何处理以及过程和函数的工作方式。程序员使用语句来操控编程语言的常见成 分,如变量和宏(程序中的小程序段)。

数据声明语句给称为变量的那些程序元素以名称和属性。变量在程序中可以赋予不同的 值。变量可以具有的属性称为类型,它们包括:变量中能保存哪些可能的值;这些值中使用

6

何种程度的数值精度;以及一个变量可以如何以有组织结构的方式——如以表或数组的形式 ——表示一组比较简单的值。在许多编程语言中,一个关键的数据类型是指针。指针变量本 身没有值,而是含有计算机可以用来查找某个其他变量的信息——也就是说,它们指向另一 个变量。

表达式是语句的一段,用于描述要对一些程序变量执行的一系列计算操作,如X+Y/Z, 其中X、Y和Z为变量,加法和除法是计算操作。赋值语句给一个变量赋予得自某个表达式的值,而条件语句则指定要被测试、然后用于选择接下来应该执行的其他语句的表达式。 过程和函数语句将某些代码块定义为以后可在程序中回调的过程或函数。这些语句也定 义程序员可选的变量和参数种类,以及当表达式访问过程或函数时代码所返回的值的类型。 许多编程语言也容许叫做宏的小翻译程序。宏将那些用程序员定义的语言结构编写的代码段 翻译成编程语言可以理解的语句。 五、历史

编程语言几乎可以追溯到20世纪40年代数字计算机发明之时。随着商用计算机的推出, 最早的汇编语言出现于20世纪50年代末。最早的过程语言是在20世纪50年代末到60年代初开发的:约翰?巴克斯创造了FORTRAN语言,接着格雷斯?霍珀创造了COBOL语言。第一种函数式语言是LISP,由约翰?麦卡锡于20世纪50年代末编写。所有这3种语言今天仍在广泛使用,但经历过大量更新。

20世纪60年代末,出现了最早的面向对象语言,如SIMULA语言。逻辑语言在20世纪70 年代中期随着PROLOG语言的推出而变得广为人知,PROLOG语言是一种用于编写人工智 能软件的语言。在20世纪70年代,过程语言继续发展,出现了ALGOL、BASIC、PASCAL、 C和Ada等语言。SMALLTALK语言是一种具有高度影响力的面向对象语言,它导致了面向对象语言与过程语言在C++和更近期的JAVA语言中的结合。尽管纯粹逻辑语言的流行程度已经下降,但其以关系语言形式用于现代数据库的变种却变得非常重要,如结构化查询语言。

第四单元:软件开发

课文A:计算机程序 一、引言

计算机程序是指挥计算机执行某种处理功能或功能组合的一套指令。要使指令得到执

行,计算机必须执行程序,也就是说,计算机要读取程序,然后按准确的顺序实施程序中编 码的步骤,直至程序结束。一个程序可多次执行,而且,取决于用户提供给计算机的选项和 数据,每次执行可能产生不同的结果。

程序分为两大类:应用程序和操作系统。应用程序直接为用户执行某种功能,如处理文 字或玩游戏。操作系统管理计算机以及与之相连的各种资源和设备,如随机存储器、硬盘驱 动器、监视器、键盘、打印机和调制解调器,以便其他程序可以使用它们。操作系统的例子 包括:DOS、Windows 95、OS/2和UNIX。 二、程序开发

软件设计者使用经常被称为实用程序或开发程序的专门应用程序来创建新程序。程序员 使用称为文本编辑程序的另一种程序,来以称为编程语言的特殊符号编写新程序。程序员使 用文本编辑程序创建一个文本文件,这个文本文件是一个有序指令表,也称为程序源文件。 构成程序源文件的单个指令称为源代码。在这个时候,一种专门的应用程序将源代码翻译成 机器语言或目标代码——操作系统将认作真程序并能够执行的一种格式。

7

将源代码翻译成目标代码的应用程序有3种:编译程序、解释程序和汇编程序。这3种应 用程序有不同的操作方式,对不同类型的编程语言进行操作,但是,它们都要达到将编程语 言翻译成机器语言的相同目的。

编译程序将使用FORTRAN、C和Pascal等高级编程语言编写的文本文件一次性从源代 码翻译成目标代码。这不同于BASIC等解释执行的语言所采取的方式。在解释执行的语言中,程序是随着每条指令的执行而逐个语句地翻译成目标代码的。解释执行的语言的优点是,它们可以立即开始执行程序,而不需要等到所有的源代码都得到编译。对程序的更改也可以相当快地进行,无需等到程序重新编译完。解释执行的语言的缺点是,它们执行起来慢,因为每次运行程序,都必须对整个程序一次一条指令地翻译。另一方面,编译执行的语言只编译一次,因此计算机执行起来可比解释执行的语言快得多。由于这个原因,编译执行的语言比解释执行的语言常用,而且,在专业和科学领域几乎总是应用编译执行的语言。 另一种翻译程序是汇编程序,它用于以汇编语言编写的程序或程序组成部分。汇编语言 也是一种编程语言,但它远比其他类型的高级语言类似于机器语言。在汇编语言中,一个语 句通常可以翻译成机器语言的一条指令。今天,汇编语言很少用来编写整个程序,而是最常 用于程序员需要直接控制计算机某方面功能的情况下。

程序经常编写为一组较小的程序片,每片表示整个应用程序的某个方面。每片独立编译 之后,一种称为连接程序的程序将所有翻译好的程序片组合成一个可执行程序。

程序罕有第一次能够正确运行的,所以一种称为调试程序的程序常被用来帮助查找称为 程序错误的问题。调试程序通常在运行的程序中检测到一个事件,并将程序员指引到该事件 在程序代码中的起源。

Java等最近出现的编程系统,采取多种方法相结合的方式创建和执行程序。编译程序取 来Java源程序,并将其翻译成中间形式。这样的中间程序随后通过因特网传送给计算机,而计算机里的解释程序接着将中间形式作为应用程序来执行。 三、程序元素

多数程序仅由少数几种步骤构成,这些步骤在整个程序中在不同的上下文和以不同的组 合方式多次重复。最常见的步骤执行某种计算,然后按程序员指定的顺序,进入程序的下一 个步骤。

程序经常需要多次重复不长的一系列步骤,例如:在浏览游戏得分表并从中找出最高得 分时。这种重复的代码序列称为循环。

计算机具有的使其如此有用的能力之一,是它们能够作出条件判定,并根据正在处理的 数据的值执行不同的指令。if-then-else(如果-则-否则)语句执行这种功能,采用的方法 是测试某个数据片,然后根据结果从两个指令序列中选择一个。这些选择对象中的指令之一 可能是一个goto语句,用以指引计算机从程序的另一个部分选择下一条指令。例如,一个程

序可能比较两个数,并视比较结果而分支到程序的另一个部分: If x is greater than y then

goto instruction #10 else continue

程序经常不止一次地使用特定的一系列步骤。这样的一系列步骤可以组合成一个子例

程,而子例程根据需要可在主程序的不同部分进行调用或访问。每次调用一个子例程,计算 机都会记住该调用发生时自己在程序中所处的位置,以便在运行完这个子例程后还能够回到 那里。在每次调用之前,程序可以指定子例程使用不同的数据,从而允许一个通用性很强的 代码片只编写一次,但以多种方式使用。

8

大多数程序使用几种不同的子例程。其中最常用的是函数、过程、库、系统例程以及设 备驱动程序。函数是一种短的子例程,用来计算某个值,如角的计算,而该值计算机仅用一 条基本指令无法计算。过程执行的是比较复杂的功能,如给一组名字排序。库是为多种不同 程序使用而编写的子例程。系统例程类似于库程序,但实际上用于操作系统。它们为应用程 序提供某种服务,如打印一行文字。设备驱动程序是一种系统例程,它们加到操作系统中, 以使计算机能够与扫描仪、调制解调器或打印机等新设备通信。设备驱动程序常常具有可以 作为应用程序直接执行的特征。这使用户得以直接控制设备。这一点很有用,例如:在彩色 打印机更换墨盒后需要重新调整以达到最佳打印质量的情况下。 四、程序功能

现代计算机通常将程序存储在计算机可以随机访问的某种形式的磁性存储介质上,如固 定放在计算机内的硬盘或者便携式软盘。这些磁盘上称为目录的额外信息,指明盘上各种程 序的名称、它们写入盘中的时间以及它们在磁盘介质上的起始位置。用户命令计算机执行一 个特定应用程序时,操作系统就浏览这些目录,找到程序,并将一个副本读入随机存储器。 操作系统然后命令中央处理器开始执行程序开头的指令。程序开头的指令为计算机处理信息 作好准备,其方法是在随机存储器中找到空闲存储单元来容纳工作数据,从盘中检索用户指 出的标准选项和默认值的副本,并在监视器上绘制初始显示。

应用程序通过调用系统例程来对用户输入的任何信息都要求一个副本。操作系统将如此 输入的任何数据都转换成标准的内部形式。应用程序然后使用该信息决定下一步干什么,如 执行某项期望的处理功能——像重新格式化一页文本或从盘上的另一个文件获取一些额外 信息。两种情况无论是哪一种,都要调用其他系统例程,以事实上完成结果的显示或对盘上 文件的访问。

运行结束或接到退出的提示时,应用程序进行进一步的系统调用,以确保所有需要保存 的数据已写回磁盘。然后,应用程序向操作系统进行最后一次系统调用,指明它已运行结束。 操作系统接下来释放随机存储器和该应用程序使用的任何设备,并等待用户的命令,以开始 运行另一个程序。 五、历史

人们以程序的形式存储指令序列已经有几个世纪了。18世纪的音乐盒和19世纪末与20 世纪初的自动钢琴,就可以播放音乐程序。这些程序以一系列金属针或纸孔的形式存储,每 一行(针或孔)表示何时演奏一个音符,而针或孔则表明此时演奏什么音符。19世纪初,随着法国发明家约瑟夫―玛丽·雅卡尔发明由穿孔卡片控制的织机,对物理设备更精巧的控制变得常见了。在编织特定图案的过程中,织机的各个部分得进行机械定位。为了使这个过程自动化,雅卡尔使用一张纸质卡片代表织机的一个定位,用卡片上的孔来指示应该执行织机的哪种操作。整条花毯的编织可编码到一叠这样的卡片上,同样的一叠卡片每次使用都会编出相同的花毯图案。在开发和使用的程序中,有的由24,000多张卡片构成。

世界上第一台可编程的机器是由英国数学家和发明家查尔斯?巴比奇设计的,但他从未

完全制造成该机器。这台叫做分析机的机器,使用和雅卡尔织机类似的穿孔卡片,来选择每 个步骤应该执行的具体算术运算。插入不同的卡片组,就会改变机器执行的运算。这种机器 几乎能在现代计算机中找到所有的对应物,但它是机械化的,而非电气化的。分析机的制造 从未完成,因为制造它所需要的技术当时不存在。

供分析机使用的最早卡片组式程序是由诗人拜伦勋爵的女儿、英国数学家奥古斯塔?埃 达?拜伦开发的。由于这个原因,她被公认为世界上第一位程序员。

现代的内部存储计算机程序概念是由美籍匈牙利数学家约翰?冯?诺伊曼于1945年首先

提出来的。冯?诺伊曼的想法是,使用计算机的存储器既存储数据又存储程序。这样,程序

9

可被视为数据,可像数据一样被其他程序处理。这一想法极大地简化了在计算机中存储与执 行程序的任务。 六、未来

由于计算机使用的增加,自20世纪50年代以来,计算机科学领域发展迅猛。作为对用户 需求和技术进步的反应,计算机程序在这一时期经历了许多变化。计算领域的新思想,如并 行计算、分布式计算和人工智能,从根本上改变了一度决定程序形式与功能的传统概念。 致力于并行计算领域研究的计算机科学家们,推出了许多新的程序模型。在并行计算中, 多个中央处理器同时合作处理同一个问题。一个问题的组成部分由不同的处理器同时处理, 这样就加快了问题的解决速度。由于并行处理计算机的极端复杂性,以及使其尽可能有效地 运行所包含的困难,为这种系统设计程序的科学家和工程师面临着许多挑战。

一种称为分布式计算的并行计算,使用多个互连计算机的中央处理器来解决问题。用来 在分布式计算应用环境下处理信息的计算机,常常通过因特网连接。因特网的应用正在成为 分布式计算的一种特别有用的形式,尤其是在使用Java等编程语言的情况下。在这种应用中,用户登录到一个站点,并下载一个Java程序到其计算机上。该Java程序运行时,就会与其所来自的站点上的其他程序通信,也可以与不同计算机或站点上运行的其他程序通信。 人工智能研究已经带来其他几种新的编程风格。例如,逻辑程序不是由供计算机盲目执 行的单个指令构成,而是由成套的规则组成:如果x发生,则执行y。一种称为推理机的特殊程序,在向其提出一个新问题时,就使用这些规则来“推理”出一个结论。逻辑程序的用途包括自动监控复杂系统和证明数学定理。

一种全然不同的计算方法称为神经网络,在这种计算中没有传统意义上的程序。神经网 络是一组高度互连的简单处理单元,旨在模拟大脑。神经网络不是像传统计算机那样通过程 序来指挥信息处理,而是依靠其处理单元的连接方式来处理信息。给神经网络编程的实现方 法是,给其提供输入与输出数据的已知模式,并调整处理单元之间各种互连的相对重要性, 直到完成所期望的模式匹配。神经网络通常在传统计算机上模拟,但是,不同于传统的计算 机程序,神经网络具有经验学习的能力。

第五单元:软件过程

课文A:软件过程模型 一、引言

一个软件过程是生产出软件产品的一系列活动。这些活动可能涉及使用一种像Java或C 这样的标准编程语言从零开始开发软件。然而,开发新软件越来越多地使用的方法是,扩展 和修改现有系统,以及配置和集成现成软件或系统组件。

一个软件过程模型是对一个软件过程的一种抽象表示。每个过程模型都从一个特定角度 表示一个过程,因此都只提供有关那个过程的部分信息。本文介绍几种非常通用的过程模型 (有时称为过程范例),并从体系结构的角度描述它们。也就是说,我们看到的是过程的框 架,而非具体活动的细节。

这些类属模型不是对软件过程的规定性描述。确切点说,它们是过程的抽象,可用于解 释软件开发的不同方法。你可以将其视为可扩展和调整以创建更为具体软件工程过程的过程 框架。

这里论述的过程模型是瀑布模型、演化开发和基于组件的软件工程。这3种类属过程模 型在当前的软件工程实践中广泛使用。它们不是互不相容,而是经常一起使用,尤其是在大 型系统开发的情况下。一个较大型系统内的子系统可使用不同的方法开发。因此,尽管分别 讨论这些模型比较方便,但应该明白,实际上它们经常结合使用。

10

二、瀑布模型

最早公布的软件开发过程模型源自比较通用的系统工程过程。这种模型如图5A-1所示。 由于从一个阶段到另一个阶段的瀑布状级联,该模型称为瀑布模型或软件生命周期。该模型 的主要阶段映射基本的开发活动:

1、 需求分析与定义。系统的服务、约束和目标要经过与系统用户的磋商加以确定。然 后,它们得到详细定义并作为系统规格说明。

2、 系统与软件设计。系统设计过程将需求划分成需硬件或软件系统实现的部分。该过 程确立一个总的系统体系结构。软件设计涉及到确定和描述基本的软件系统抽象及 其相互关系。

3、 实现与单元测试。在这个阶段,软件设计被实现为一组程序或程序单元。单元测试 涉及到验证每个单元是否符合其规格说明。

4、 集成与系统测试。单个的程序单元或程序进行集成并作为一个完整系统进行测试, 以确保软件需求已得到满足。测试之后,软件系统交付客户。 5、 运行与维护。通常(但并非必定),这是软件生命周期最长的阶段。系统经过安装 投入实际使用。维护涉及到纠正在软件生命周期前面阶段没有发现的错误,改进系 统单元的实现,并随着新需求的发现增强系统的服务。

原则上,每个阶段的结果都要形成一份或多份经过批准的文件。前一个阶段未结束,下 一个阶段不应开始。实际上,这些阶段重叠并互相馈送信息。在设计期间,需求方面存在的 问题得到识别;在编码期间,设计问题被发现,等等。软件过程并非一个简单的线性模型, 而是涉及到一系列迭代的开发活动。

由于编制和批准文件的成本,迭代需要大笔开销,而且需要做大量重复工作。因此,经 过少数迭代之后,通常应冻结开发的某些部分,如规格说明,并继续进行后面的开发阶段。 存在的问题留待以后解决,置之不顾,或者通过编程绕过去。这样仓促冻结需求,可能意味 图5A-1:软件生命周期 运行与 维护 集成与 系统测试 实现与 单元测试 系统与 软件设计 需求定义

着系统将难以满足用户的要求。由于使用实现技巧规避了设计问题,这也可能导致不良的系 统结构。

在最后的生命周期阶段(运行与维护),软件投入使用。最初软件需求中存在的错误与

疏漏被发现,程序与设计错误浮现,而且新的功能需要得到确定。因此,为保持有用性,系 统必须演变。进行有关更改(软件维护)可能涉及到重复以前的过程阶段。

瀑布模型的优点在于每个阶段都编制文件,而且它与其他的工程过程模型相符合。其主 要问题在于将项目僵硬地划分成不同的阶段。在过程的一个早期阶段,必须定下决心,从而 使得应对客户需求变化很困难。

因此,只有在需求得到很好理解、在系统开发期间不可能发生根本性变化的情况下,才 应使用瀑布模型。然而,瀑布模型体现了在其他工程项目中所使用的过程模型类型。所以, 基于这种方法的软件过程仍然用于软件开发,特别是当有关软件项目是一个较大系统工程项

11

目的一部分时。 三、演化开发

演化开发基于这样的思想:开发一个初始的实现,让其接受用户评论,并让其经过多个 版本的改进,一直到开发出能够满足需要的系统(图5A-2)。规格说明、开发及验证活动不 是分开进行,而是交叉进行,各项活动之间有快速的信息反馈。 演化开发有两个基本类型:

1、 探索式开发。在这种类型中,过程的目标是与客户协作探索其需求,并交付一个最 终的系统。开发从业已理解的系统部分开始。随着增添客户提出的新特征,系统不 中间 版本 并行活动

图5A-2:演化开发 描述 最终 版本 初始 版本 开发 验证 规格说明 断演变。

2、 抛弃式原型开发。在这种类型中,演化开发过程的目标是理解客户的需求,从而为 系统开发比较好的需求定义。原型集中试验没有很好理解的客户需求。

在生产满足客户眼下需要的系统时,软件开发的演化方法常常比瀑布方法有效。基于演 化方法的软件过程的优点是,规格说明可以渐进地开发。随着用户增进对其问题的理解,这 种理解可以反映在软件系统中。然而,从工程和管理的角度来看,演化方法存在两个问题: 1、 过程缺乏可视性。管理员需要定期交付的产品来衡量进度。在快速开发系统的情况 下,编制反映每个系统版本的文件不合算。

2、 系统常常缺乏良好的结构。不断的更改往往会破坏软件的结构。吸收软件更改变得 越来越困难,越来越成本高昂。

对于中小型系统(上至50万行代码),演化方法或许是最佳的开发方法。对于不同小组 开发系统不同部分的大型、复杂、长寿命系统,演化开发存在的问题尤为严重。使用这种方 法难以建立一个稳定的系统体系结构,这使得集成各小组的贡献变得很难。

对于大型系统,建议使用一种混合过程,将瀑布模型和演化开发模型的最佳特征结合起 来。这可能涉及到使用演化方法开发一个抛弃式原型,以解决系统规格说明中存在的不确定 性。然后,可使用一种结构化程度比较高的方法重新实现系统。得到很好理解的系统部分可 使用基于瀑布模型的过程进行规格说明和开发。事先难以进行规格说明的其他系统部分,如 用户界面,无例外地应使用探索式编程方法来开发。 四、基于组件的软件工程

大多数软件项目都存在某种程度的软件复用。通常,这是非正式发生的。参加项目的人 知道有现成的设计或编码类似于他们所需的设计或编码。他们寻找这些设计或编码,根据需 要对其进行修改,并将其吸收进他们的系统。对于使用演化方法进行快速系统开发,复用常 常是必要的。

12

这种非正式复用的发生是不考虑所使用的开发过程的。然而,在过去几年中,出现了一 种软件开发方法,这种方法使用得越来越多,它依靠复用,被称为基于组件的软件工程。 这种面向复用的方法依靠大量的可复用软件组件,以及用于这些组件的某种集成框架。 有时,这些组件本身就是可提供文本格式化或数值计算等特定功能的系统(商用现成系统)。 基于组件的软件工程的类属过程模型如图5A-3所示。

就最初的需求规格说明阶段和验证阶段而言,面向复用过程与其他过程相类似,但它的 中间阶段与其他过程不同。这些阶段是:

1、 组件分析。在有需求规格说明的情况下,搜索实现该规格的组件。通常,不存在完 全相符的组件。可能被使用的组件只在某种程度上提供所要求的功能。

2、 需求修改。在这个阶段,使用已经发现的组件的相关信息分析需求,然后修改需求 以反映可用的组件。在无法进行修改的情况下,可能重新进入组件分析活动,以搜 索可供选择的解决方案。

3、 带复用的系统设计。在这个阶段,设计系统框架或复用现有的框架。设计员考虑到 复用的组件,并组织安排框架使其适应复用的要求。如果得不到可复用的组件,可 能得设计一些新软件。

4、 开发与集成。无法外部获得的软件要进行开发,组件和商用现成系统要集成以创建 新的系统。系统集成在这种模型中可能是开发过程的一部分,而非一项分开的活动。 基于组件的软件工程具有减少需要开发的软件量并因此降低成本与风险的明显优点。它 通常也可更快地交付软件。然而,需求方面的妥协不可避免,这可能导致系统不能满足用户 的真正需要。此外,可复用组件的新版本不受其使用机构的控制,因此丧失了对系统演变的 某些控制。

图5A-3:基于组件的软件工程 需求 规格说明 组件 分析 需求 修改 带复用的 系统设计 系统 验证 开发与 集成

第六单元:数据库

课文A:数据库概览 一、引言

数据存储传统上是使用单独的没有联系的文件,这些文件有时称为平面文件。在过去, 一个机构中的每个应用程序都使用自己的文件。例如,在一个大学中,每个部门都可能有其 自己的文件集:档案办公室保存着关于学生信息和学生成绩的文件;经济资助办公室保存着 其自己的关于需要经济资助以继续学业的学生的文件;调度办公室保存着教授的姓名和他们 所教的课程;工薪发放部门保存着其自己的关于全体教职员工(包括教授)的文件,等等。

13

然而,所有这些平面文件今天都可结合成一个实体——供整个大学使用的数据库。 虽然难以给出一个普遍接受的数据库定义,但我们使用下面常见的定义:一个数据库是 被一个机构内的应用程序所使用的具有逻辑相干性的相关数据的集合。 二、数据库管理系统

数据库管理系统定义、创建和维护数据库。数据库管理系统也允许对数据库中的数据进 行受控的访问。一个数据库管理系统由5个组成部分构成:硬件、软件、数据、用户和规程。 1、硬件

硬件是指允许访问数据的计算机物理系统。例如,终端、硬盘、主机和工作站被认为是 数据库管理系统的硬件组成部分。 2、软件

软件是指允许用户访问、维护和更新数据的实际程序。另外,软件还控制着哪个用户可 以对数据库中的哪部分数据进行访问。 3、数据

数据库中的数据存储在物理存储设备上。在一个数据库中,数据是独立于对其进行访问 的软件的一个实体。这种独立使一个机构可以在不必更改物理数据及其存储方式的情况下更 改软件。如果一个机构决定使用一个数据库管理系统,那么该机构所需要的所有信息都应作 为一个实体保存在一起,可由数据库管理系统中的软件访问。 4、用户

在数据库管理系统中,用户这个术语有着广泛的定义。我们可以将用户分为两类:最终 用户和应用程序。

最终用户是指可直接访问数据库以获取信息的人。最终用户又分为两类:数据库管理员 和普通用户。数据库管理员拥有最高程度的特权,可以控制其他用户及其对数据库管理系统 的访问,可以将其某些特权授予其他人并保留随时收回这些特权的能力。另一方面,普通用 户只能使用数据库的一部分,只能进行有限的访问。

数据库中数据的其他用户就是应用程序。应用程序需要访问和处理数据。例如,工薪发 放应用程序需要在月底访问数据库中的部分数据,来开支付工薪的支票。 5、规程

数据库管理系统的最后一个组成部分就是应该明确定义并为数据库用户所遵循的一套 规程或规则。 三、数据库体系结构

美国国家标准协会标准计划与需求委员会(ANSI/SPARC)为数据库管理系统确立了一 个包含3个层次的体系结构:内层、概念层和外层(图6A-1)。 1、内层

内层决定数据在存储设备上的实际存储位置。该层涉及低级访问方法,以及字节如何传 向和传自存储设备。换句话说,内层直接与硬件交互。 2、概念层

概念层定义数据的逻辑视图。数据模型在该层定义,数据库管理系统的主要功能——如 查询——也在该层。数据库管理系统把数据的内部视图转化为用户需要看到的外部视图。概 念层是中介层,它使得用户不必与内层打交道。 3、外层

外层直接与用户(最终用户或应用程序)交互。它将来自概念层的数据转化为用户所熟 悉的格式和视图。 四、数据库模型

14

数据库模型定义数据的逻辑设计。它也描述数据的不同部分之间的关系。在数据库设计 史上,使用过3种数据库模型:层次模型、网络模型和关系模型。 1、层次数据库模型

在层次模型中,数据被组织成一棵倒置的树。每个实体只有一个父,但可有数个子。在 分层结构的顶部,有一个实体,称为根。图6A-2给出了一个层次模型例子的逻辑视图。层次模型现在已经过时。 2、网络数据库模型

在网络模型中,实体以图的形式来组织,图中的有些实体可通过多条路径访问(图6A-3)。 网络模型没有分层结构。这种模型现在也已经过时。 3、关系数据库模型

在关系模型中,数据被组织成称为关系的二维表。关系模型没有分层或网络结构强加于 数据。然而,表或关系是相互关联的(图6A-4)。关系数据库管理系统组织数据,使其外部 视图呈现为关系或表的集合。这并不意味着数据以表的形式存储:数据的物理存储与数据的 逻辑组织方式毫无关系。图6A-5给出了一个关系的例子。关系数据库管理系统中的关系具有以下特征:

● 名称。关系数据库中的每个关系都应具有一个名称,而这个名称在所有关系中是独一 无二的。

● 属性。关系中的每一列都称为一个属性。在图6A-5的表中,属性是列的标题。每个 属性赋予存储在其下面的数据以意义。表中的每一列都必须具有一个在关系的范围内 独一无二的名称。一个关系的属性总数称为该关系的度。例如,在图6A-5中,关系 的度为3。注意属性名并不存储在数据库中:概念层使用属性给每一列赋予一定的意 义。

● 元组。关系中的每一行称为一个元组。元组定义一组属性值。一个关系中的总行数称 为该关系的基数。注意一个关系的基数随着元组的增加或删除而改变。这使数据库具 有了动态性。

关系模型是今天使用的常见模型之一。源自关系模型的另外两种常见模型是分布式模型 和面向对象模型。 4、分布式数据库模型

分布式数据库模型并非一种新模型,而是基于关系模型的。但是,数据存储在通过因特 网或专用广域网通信的数台计算机上。每台计算机(或站点)保持数据库的一部分或整个数 据库。换句话说,数据或者是分段存储的——每个站点存储一段,或者被每个站点复制一份。 在分段型分布式数据库中,数据是本地化的,本地使用的数据存储在相应的站点上。然 而,这并不意味着一个站点不能访问存储在另一个站点上的数据,但访问大多是本地性的, 偶尔是全局性的。虽然每个站点对其本地数据具有完全的控制,但也存在通过因特网或广域 网的全局控制。

例如,一家制药公司可能在许多国家拥有多个站点。每个站点有一个数据库,存储着自 己雇员的信息。但是,中心人事部门可以控制所有的数据库。

在复制型分布式数据库中,每个站点都有其他站点的一个完全副本。对一个站点所存储 的数据进行的任何修改,都要在其他每个站点上精确地重复进行。拥有这种数据库是为了安 全。如果一个站点上的系统发生故障,该站点的用户可以访问另一个站点上的数据。 5、面向对象数据库模型

关系数据库具有一个特定的数据视图,该视图基于数据库元组与属性的性质。关系数据 库中最小的数据单位是一个元组与一个属性的交集。然而,有些应用程序需要将数据视为其 他形式,如看作一种结构,像由字段构成的记录。

15

面向对象数据库试图保留关系模型的优点,同时允许应用程序访问结构化数据。在面向 对象数据库中,对象及其之间的关系得到定义。此外,每个对象可以具有可表示为字段的属 性。

例如,在一个机构中,可以为雇员、部门和客户定义对象类型。雇员类可以定义一个雇 员对象的属性(名、姓、社会保险号码、薪水等等),以及可以如何访问它们。部门对象可 以定义部门的属性,以及可以如何访问它们。此外,数据库还可以在一个雇员对象与一个部 门对象之间创建一种关系,以表示该雇员在该部门工作。 五、数据库设计

任何数据库的设计都是一项冗长、复杂的任务,只能通过一个逐步的过程来完成。第一 步通常涉及对数据库潜在用户的大量访谈,以收集需要存储的信息和每个部门的访问需求。 第二步是建立一个实体关系模型,该模型定义必须为之保存一些信息的实体、这些实体的属 性以及这些实体之间的关系。

设计的下一步基于所要使用的数据库的类型。在关系数据库中,下一步是建立基于实体 关系模型的关系,并规范化这些关系。规范化是一个过程,通过该过程一组特定的关系转化 成一组具有更坚固结构的新关系。为了达到以下目的,需要规范化:允许数据库中的任何关 系得到表示,允许像SQL(结构化查询语言)这样的语言使用由原子操作组成的功能强大的检索操作,消除插入、删除和更新操作中的异常,以及减少添加新的数据类型时重构数据库的必要性。

第七单元:计算机通信

课文A:电信与计算机

电信使世界各地的人们得以互相联系,即刻获取信息,并从边远地区实施通信。电信通 常涉及一个信息发送者和一个或多个接收者,他们通过电话系统等把信息从一地发送到另一 地的技术相联系。电信设备将不同类型的信息,如声音和图像,转换成电子信号。然后,这 些信号就可以通过电话线或无线电波等媒介进行发送。信号到达目的地后,接收端的设备将 电子信号转换回可以理解的信息,如电话中的声音、电视上的活动图像或计算机屏幕上的文 字和图片。电信使人们能够在城镇不同地方、国家之间以及向外层空间和从外层空间发送和 接收个人信息。电信也为新闻、数据、信息和娱乐提供了关键的媒介。

电信信息可通过各种方式和设备发送。信息可由一个发送者发送给一个接收者(点对 点),或者由一个发送者发送给多个接收者(点对多点)。个人通信,如两个人之间的电话对 话或传真信息,通常涉及点对点的传输。通常称为广播的点对多点电信传输,为商业无线电 和电视节目播送提供了基础。

电信以信息转换为电子信号为开端。然后,这些信号通过媒介发送到接收机,并在那里 解码,恢复为接收信息的人能够理解的形式。有各种方法可以生成并解译信号,也有许多不 同方法可以传输信号。

电报机与电话机等设备,通过生成调制电脉冲或以系统化方式变化的脉冲,来传递信息。 接下来,这些脉冲通过导线、无线电波或其他媒介发送给接收机,并由其进行解调。电报机 是最早的传递电信信息的方法,它通过将电报电键与金属导体之间的接触(使电流得以流动 的两个导体之间的连接)转换成电脉冲而进行工作。这些脉冲沿着导线发送到接收机,而接 收机则将这些脉冲转换成长与短的声音脉冲串,或者在简单的打印设备上打印出来的点与 划。特定的点与划序列代表字母表中的字母。在早期的电报中,这些序列由电报机操作员进 行解译。这样,电报机操作员就可以发送和接收可拼成词语的字母。后来的电报机能自动解 译字母和数字。电报机在很大程度上已被其他的电信形式所取代,如传真机和电子邮件,但

16

在世界有些地方,电报机仍然用来发送信息。

电报机、电话机、无线电和电视都是通过修改电子信号,使其模拟或再现原来的信息, 来进行工作的。这种传输称为模拟传输。然而,计算机和其他类型的电子设备是传输数字信 号的。数字技术将信息转换成电子形式。其方法首先是多次测量信息的不同特性,如语音的 音高和音量。然后,这些测量值被编译成多个系列的二进制数或1与0。最后,数字技术生成并发送与这些系列的1和0相对应的电脉冲。与模拟信号相比较,数字信息可以更快、更清晰地传输,因为电脉冲仅需与两个数字对应,而不是构成原信息的所有特性,如人的说话声的音高和音量。数字信息可以通过导线、电缆或无线电波传输,但必须由数字接收机进行解译。新型数字电话和电视正在开发中,以提高电信的效率。

大多数个人计算机通过使用普通电话网,来进行彼此间的通信以及与因特网等大型网络 的通信。因为电话网是通过将语音信号转换成电子信号来工作的,计算机必须首先将其数字 数据转换成语音信号。计算机使用称为调制解调器的设备来完成这项工作。调制解调器是调 制器/解调器的缩略。调制解调器将计算机输出的1和0数字流转换成模拟信号,而模拟信号可随后通过电话网传输,就像通话者的声音那样。接收端计算机的调制解调器将模拟语音信号解调还原为计算机能理解的数字形式。

电信系统使用多种不同的传输媒介传送信息,包括铜线、光缆、通信卫星和微波无线电。 划分电信媒介的一种方法,是看媒介是否使用导线。基于导线(或有线)的电信提供了大多 数电话与电话网之间的最初链路,是一种可靠的信息传输方式。没有导线的电信,通常称为 无线通信,使用无绳电话、蜂窝式无线电话、步话机、民用波段无线电台、寻呼机和卫星等 技术。无线通信提高了机动性和灵活性。

个人、企业和政府使用多种不同的电信系统。有些系统,如电话系统,使用由电缆、导 线和交换台组成的网络,来进行点对点的通信。另外一些系统,如无线电台与电视台,通过 空间播出信号,任何拥有接收设备的人都可以接收。有些系统利用数种媒介完成传输。例如, 一个电话从打电话的人传送到接电话的人,其间可能要通过铜线、光缆和无线电波进行传输。 随着电信技术的发展,所有的电信系统都在不断地演变。

计算机远程通信具有发送和接收音频信号、视频信号、文本、软件和多媒体的能力,是 电信市场发展最快的部分之一。计算机远程通信利用现有的电话连接来传输数字数据。这种 传输常常通过因特网进行,而因特网是一个由个人、企业、政府和教育机构所使用的计算机 和信息源构成的分散型网络。有些计算机使用综合业务数字网(ISDN)直接连接到电话网的数字部分,但这需要安装专门设备和进行电话线调整。为了大幅度提高调制解调器的速度, 目前正在开发一种供常规电话线使用的改进型调制解调器系统,称为数字用户线路(DSL)。 电子邮件是因特网吸引人的一个关键点,也是计算机远程通信的一种常见形式。电子邮 件是基于文本的信息传输系统,它能将键入的信息和多媒体信息等发送给个人计算机用户。 (一幢建筑或一家公司内的)本地电子邮件通常经由基于导线的内部网传送给收件人。必须 横穿城镇或国家才能到达最终目的地的电子邮件,通常通过电话网进行传输。企业经常使用 的其他计算机远程通信技术包括自动银行终端及设备,用来处理将费用直接从顾客银行帐户 上扣除的信用卡业务。

随着越来越复杂的计算机信息以快速提高的速度通过电话线发送,个人计算机拓展了电 话系统的作用范围。这种对速度的需要促进了数字传输技术的发展。光纤技术的革新有望跟 上个人计算机在远程通信方面不断增长的使用。下一代蜂窝电话、寻呼机和电视机也将受益 于数字远程通信的速度和清晰度。

电信和信息技术正在融合。这意味着,在我们只将其与一种功能联系起来的设备中,有 不少可能演变为多用途设备。这种融合已经开始在各种领域发生。有些电话机和寻呼机不但 能存储电话号码,而且还能存储呼叫者的姓名和个人信息。现在正在研制带有键盘和小屏幕

17

的先进电话机,可用于访问因特网和接发电子邮件。个人计算机现在可以访问信息和视频娱 乐节目,实际上正在成为电视机和计算机终端的组合体。我们当前将其与广播和电缆传输的 视频节目联系在一起的电视机,可以通过附加的设备访问因特网。未来的改进和技术革新可 能使设备之间的区别进一步模糊化。

电信技术的融合也将在可获得的内容以及内容提供者的构成方面引起改变。电视机和个 人计算机都将不断地吸纳新的多媒体、交互和数字化特征。例如,一个娱乐节目可能会有屏 幕指针,链接到含有演员更多信息的万维网网页上。从近期来看,在全数字化电信时代到来 之前,调制解调器等设备在为旧的模拟世界与即将到来的数字世界提供基本链接方面,仍然 必不可少。

第八单元:计算机网络

课文A:网络基本原理

在不同计算机之间共享信息和资源的需要,导致了相互连接的计算机系统的产生。这种 相互连接的计算机系统被称为网络。在网络中,计算机连接在一起,从而数据可以从一台计 算机传输到另一台计算机。在网络中,计算机用户可以交换信息,并共享分散在整个网络系 统的资源,如打印能力、软件包以及数据存储设备。支持这类应用所需的基本软件,已经从 简单的实用软件包发展成一个不断扩展的网络软件系统,该系统提供了一个复杂的网络范围 的基础结构。从某种意义上说,网络软件正在演变成一个网络范围的操作系统。 一、网络分类

计算机网络常常划分为局域网、城域网和广域网。局域网通常由一幢建筑物或一个建筑 群中的若干计算机组成。例如,大学校园里的计算机或制造工厂中的计算机可以用局域网连 接。城域网属于中型网络,如一个覆盖某一社区的网络。广域网连接地理范围更广的计算机, 这些计算机或许在相邻的城市,或许在地球相反的两面。

网络分类的另一种方式是根据网络的内部运行是基于无专利权保护的设计还是基于特

定实体(如个人或公司)所拥有和控制的革新。前一种类型的网络称为开放式网络,后一种 类型的网络称为封闭式网络,有时也称为专有网络。

因特网属于开放式系统。尤其是,整个因特网的通信是由一组称为TCP/IP协议组的开放 标准来控制的。任何人都可以自由地使用这些标准,而不需要付费或签署许可协议。相反, 像Novell股份有限公司这样的公司可能选择为其开发的系统保留所有权,通过出售或出租这

些产品获得收入。基于这类系统的网络属于封闭式网络的例子。

还有一种网络分类方法,它基于网络的拓扑结构,即计算机相互连接的模式。总线拓扑 结构、环形拓扑结构和星形拓扑结构是3种流行的拓扑结构。其中,星形网络或许是最古老 的,这种网络由一台大型中央计算机服务许多用户的范式演变而来。随着这些用户所使用的 简单终端本身发展成小型计算机,星形网络也就出现了。需要强调的一点是,在一个网络中, 计算机之间的连接并不一定是物理连接。使用无线广播技术的无线网络正在变得相当常见。 二、协议

为了网络可靠运行,确立进行网络活动所遵循的规则很重要。这类规则称为协议。通过 开发和采用协议标准,不同厂商制造的网络应用产品能够相互兼容。因此,在联网技术的开 发中,协议标准的开发是一个必不可少的过程。

作为对协议概念的介绍,让我们考虑在一个网络的计算机之间协调报文传输的问题。如 果没有控制这种通信的规则,所有的计算机就可能坚持同时传输报文,或者在需要传递报文 时而未能传递。

18

解决这个问题的一种方法是令牌环协议,该协议由IBM公司20世纪70年代开发,今天在 基于环形拓扑结构的网络中依然是一种很流行的协议。在这个协议里,网络中的所有计算机 都只沿一个共同的方向传输报文(图8A-1)。也就是说,通过网络发送的所有报文都沿一个 相同的方向绕环形网络移动,依次经由各个计算机转发。一份报文到达目的地后,目的地的 计算机保留一个副本并绕环形网络转发一个副本。当转发的副本到达始发计算机时,该计算 机知道报文一定到达了目的地,并将其移出环形网络。当然,这种系统的运行依靠计算机之 间的合作。如果一台计算机坚持不断地传输自己的报文,而不转发其他计算机的报文,那么 这个系统就什么也执行不了。

为了解决这个问题,在环形网络中传递一个称为令牌的独特位模式。拥有令牌的计算机 得到权利传输自己的报文,而没有令牌的计算机则只允许转发报文。一般来说,每台计算机 只是像传递报文那样传递令牌。然而,如果收到令牌的计算机有自己的报文需要通过网络传 输,它就会保存令牌,同时传输一份报文。这份报文在环形网络中环绕一周后,该计算机就 将令牌传递给环形网络中的下一台计算机。同样,当下一台计算机收到令牌时,它既可以立 即传递令牌,也可以先传输自己的新报文,然后将令牌传递给下一台计算机。这样,随着令 牌绕着环形网络传递,网络中的每台计算机都有同等的机会传输自己的报文。

协调报文传输的另外一种协议用于基于以太网协议集的总线拓扑网络。在以太网系统

中,传输报文的权利由称为带有冲突检测的载波侦听多路访问(CSMA/CD)的协议控制。 该协议规定,每一份报文必须向总线上的所有计算机广播(图8A-2)。每台计算机监控所有 的报文,但只保留发送给自己的那些报文。一台计算机要等到总线静默时才可以传输报文。 这时,它开始传输报文,同时继续监控总线。如果另一台计算机也开始传输报文,这两台计 算机都会检测到冲突,并暂停短暂而随机的一段时间,然后再尝试传输。结果是形成一种体 制,这种体制类似于一小群人对话时所采用的。如果两个人同时开始说话,他们都会停下来。 不同的是,人们随后可能进行这样的对话:“抱歉,您想说什么?”,“不,不,您先说。”而 根据CSMA/CD协议,每台计算机只是重新进行尝试。 三、进程间通信

在一个网络内不同计算机上(甚至使用分时方法在同一台计算机上)执行的各种活动(或 进程)必须经常互相通信,以便协调行动,并完成指定的任务。这种进程之间的通信称为进 程间通信。

进程间通信使用的一种流行规约是客户机/服务器模型。这种模型将进程扮演的基本角色 或定义为向其他进程提出请求的客户机,或定义为满足客户机所提请求的服务器。

客户机/服务器模型的一种早期应用,出现在将一组办公室里的所有计算机都连接起来的 网络中。在这种应用中,一台高质量的打印机被连接到网络上,供其中的所有计算机使用。 在这种情况下,打印机扮演了服务器(常称为打印服务器)的角色,而其他计算机则通过程 序设计而扮演了向打印服务器发送打印请求的客户机角色。

客户机/服务器模型的另外一种早期应用是为了降低磁盘存储费用,同时消除复制记录的 需要。在这种情况下,网络中的某一台计算机配备了大容量存储系统(通常是磁盘),存储 一个机构的所有记录。这样,网络中的其他计算机可根据需要请求访问这些记录。因此,实 际含有记录的计算机扮演了服务器(称为文件服务器)的角色,而其他计算机则扮演了请求 访问文件服务器上存储的文件的客户机角色。

今天,客户机/服务器模型在网络中广泛应用。不过,客户机/服务器模型并非进程间通 信的唯一方式。另外一种模型是对等(peer-to-peer,常缩写为P2P)模型,其特性与客户 机/服务器模型的特性形成鲜明对照。客户机/服务器模型涉及一个进程(服务器)与许多其 他进程(客户机)通信,而对等模型则涉及两个进程进行对等通信(图8A-3)。而且,服务 器必须持续运行,以准备好随时服务于客户机,而对等模型则通常涉及两个进程临时运行。

19

例如,对等模型的应用包括两个人通过因特网进行书面对话的即时通信,以及人们参与下国 际象棋或西洋跳棋等游戏的情况。

对等模型还是通过因特网共享音乐录音、影片等文件的一种流行方法(其合法性有时值 得怀疑)。在这种情况下,寻求特定项目的个人在因特网上发布其需求,而拥有他所感兴趣 项目的人则会与他取得联系。然后,双方之间就可以使用对等模型传输这些项目。这与应用 客户机/服务器模型的较早期方法截然不同,这些方法要建立一个“分发中心”(服务器),供客户机下载音乐录音(或者至少找到可以提供这些项目的地方)。然而,中心服务器证明是音乐行业可以运用版权法的一个焦点对象,结果最终导致这些音乐分发中心的解体。与此形成对照的是,对等模型缺乏一个操作中心,这使得运用版权法的努力难度增加。 你或许经常读到或听到“对等网络”这个说法,这是当技术术语被非科技界采用时可能 发生术语误用的一个例子。“对等”指的是两个进程通过网络(或互联网)进行通信的一种 体制,并不是网络(或互联网)的一种特性。一个进程可以通过同一个网络先是使用对等模 型与另一个进程通信,然后又使用客户机/服务器模型与另一个进程通信。因此,比较准确的说法是,使用对等模型通信,而不是通过对等网络通信。

第九单元:因特网

课文A:因特网

最著名的互联网例子是因特网(Internet,注意大写的I)。因特网起源于20世纪60年代 初的研究项目。其目标是发展一种能力,将各种计算机网络连接起来,使它们能够作为一个 不会因局部灾难而瓦解的互联系统运行。最初的工作大多是由美国政府通过国防部高级研究 计划局(DARPA——读作“DAR-pa”)发起的。随着岁月的推移,因特网的开发从一个国 防项目转变成一个学术研究项目。如今,它在很大程度上是一个商业项目,连接着全世界的 广域网、城域网和局域网,涉及数百万台计算机。 一、因特网体系结构

从概念上说,因特网可以看作是域的集合。每个域由一个网络或一个相对较小的互联网 组成,由一个像大学、公司或政府机构那样的组织负责运行。每个域是一个自主系统,可根 据本地管理机构的愿望进行配置。它可能由一台计算机或一个包含许多局域网、城域网、甚 至广域网的复杂互联网组成。

域的建立由互联网名称与数字地址分配机构(ICANN)监管。这是一个非赢利公司,其 成立的目的是协调域的命名及因特网地址的分配。要在因特网上建立一个域,该域必须首先 通过一个得到ICANN授权做此工作、被称为域名注册服务商的公司进行注册。

一个域一旦注册,即可以使用一个路由器连接到现有的因特网上。这个路由器将该域中 的一个网络与已经在因特网内的一个网络相连接。这个特定的路由器常被称为该域的网关, 因为它相当于该域通往因特网其余部分的大门。从单个域的角度看,位于其网关外面的那部 分因特网有时被称为“云”,这是指以下的事实:其网关外面的因特网结构不受其控制,而 且与其本身的操作也没有什么关系。传输给该域内一个目的地的任何报文都在该域内处理, 传输给该域外一个目的地的任何报文都首先送至网关,然后由网关向外发送到云里。 一个人如果“站”在一个域的网关处“向外看”云,就会发现各种结构。的确,随着各 种域找到与云建立连接的点,因特网也以有点随意的方式发展着。然而,一种流行的结构是, 将若干域的网关连接在一起,形成一个由网关组成的区域网络。例如,一组大学可以选择将 其资源集中起来,用于构建这样一个网络。而这个区域网络接着又连接到一个更大的网络上, 后者上面还连接有其他的区域网络。这样,那部分云就呈现出了层次结构(图9A-1)。 二、连接到因特网

20

本文来源:https://www.bwwdw.com/article/cfkv.html

Top