《计算机科学概论》—第1章1.节全景图

第1章Computer Science Illuminated, Fifth Edition全景图
这本书将带你游历计算世界,采用自底向上、由内到外的方式探讨计算机如何运作——它们可以做什么以及如何做。计算机系统就像一个交响乐团,把许多不同的元素组织在一起,构成了一个整体,但这个整体的功能却远远大于各个部件功能的总和。这一章综述了我们要在书中慢慢剖析的各个部件,从历史的角度来观察它们,提供了一幅计算机系统的全景图。
硬件、软件、程序设计、网上冲浪和电子邮件这些术语都是你耳熟能详的。虽然有些人能够精确地定义这些与计算机相关的术语,但是其他人则对它们只有一个模糊的、直觉的概念。这一章则一视同仁,列出了通用的计算机术语,而且为我们深入探讨的计算领域搭建了平台。
目标
学完本章之后,你应该能够:
描述计算机系统的分层。
描述抽象的概念以及它与计算的关系。
描述计算机硬件和软件的历史。
描述计算机用户转换的角色。
区分系统程序员和应用程序员。
区分计算工具和计算学科。
1.1 计算系统
在本书中,我们将探讨计算系统的方方面面。注意,我们使用的术语是“计算系统”,而不是“计算机系统”。计算机是一种设备,而计算系统则是一种动态实体,用于解决问题以及与它所处的环境进行交互。计算系统由硬件、软件和它们管理的数据构成。计算机硬件是构成机器及其附件(包括机箱、电路板、芯片、电线、硬盘驱动器、键盘、显示器、打印机等)的物理元件集合。计算机软件是提供计算机执行的指令的程序集合。计算机系统的核心是它管理的信息。如果没有数据,硬件和软件都毫无用处。
本书的基本目标有三个:
让你扎实、概括地理解计算系统是如何运作的。
让你理解与欣赏现代计算系统的进化。
给你足够的关于计算的信息,以决定是否深入探讨这个主题。
这一节剩余的部分解释了如何把计算机系统分成几个抽象层以及每一层扮演的角色。接下来的一节把计算硬件和软件的开发置于历史背景中。本章的结尾讨论了计算工具和计算学科。
计算系统(computing system):通过交互解决问题的计算机硬件、软件和数据。
计算机硬件(computer hardware):计算系统的物理元件。
计算机软件(computer software):提供计算机执行的指令的程序。
1.1.1 计算系统的分层
计算系统就像一个洋葱,由许多层构成,每个分层在整个系统设计中都扮演一个特定的角色。计算系统的分层如图1-1所示,它们构成了本书的基本结构。在探讨计算系统的各个方面时,我们将不时地回顾这个“全景图”。

你可能不会像咬苹果那样咬洋葱,但是可以把它分割成同心环。同样,在这本书中,我们把计算分层逐个地从计算系统中剥离出来,每次只探讨一个分层,这样,每个分层自身就不那么复杂了。事实上,计算机真正所做的只是非常简单的任务,它盲目快速地执行这些任务,根本不知道可以把许多简单的任务组织成较大的复杂任务。当把各个计算机分层组织在一起时,让它们各自扮演自己的角色,这种简单组合产生的结果却是惊人的。
让我们简单地讨论一下每个分层,并且说明在本书的什么地方会详细讨论它们。我们讨论的顺序是从内到外,也称为自底向上方法。
最内层的信息层反映了在计算机上表示信息的方式,它是一个纯概念层。计算机上的信息采用二进制数字1和0管理。所以,要理解计算机处理技术,首先必须理解二进制数制以及它与其他数制(如人们日常使用的十进制数制)的关系。然后介绍了如何获取多种类型(如数字、文本、图像、音频和视频)的信息以及如何用二进制格式表示它们。第2章和第3章探讨了这些问题。
接下来的硬件层由计算机系统的物理硬件组成。计算机硬件包括的设备有门和电路,它们都按照基本原理控制电流。正是这些核心电路使专用的硬件元件(如计算机的中央处理器CPU和存储器)得以运转。第4章和第5章详细讨论了这些论题。
程序设计层负责处理软件、用于实现计算的指令以及管理数据。程序有多种形式,可以在许多层面上执行,由各种语言实现。尽管程序设计问题多种多样,但是它们的目的是相同的,即解决问题。第6~9章探讨了许多与程序设计和数据管理相关的问题。
每台计算机都用操作系统(OS)管理计算机的资源。诸如Windows XP、Linux或Mac OS这样的操作系统可以使我们与计算机系统进行交互,管理硬件设备、程序和数据间的交互方式。了解操作系统为我们做了什么通常是理解计算机的关键。第10章和第11章讨论了这些问题。
前面(内部)的分层重点在于使计算机系统运转,而应用层的重点则是用计算机解决真实世界的问题。我们通过运行应用程序在其他领域利用计算机的能力,例如设计一个建筑或打游戏。领域专用的计算机软件工具范围广大,涉及计算学的几个子学科,如信息系统、人工智能和仿真。第12章、第13章和第14章讨论了应用程序系统。
计算机不再只是某个人桌面上的孤立系统。我们使用计算机技术进行通信,通信层是计算系统操作的基础层。计算机被连接到网络上,以共享信息和资源。Internet逐渐演化成了全球性的网络,所以利用计算技术,可以与地球上的任何地方通信。World Wide Web使通信变得相对容易,它从根本上改变了计算机的使用价值,这样一般大众也能使用它。第15章和第16章讨论了这些有关计算通信的重要论题。
计算技术的使用可能会导致安全隐患的增加。目前来说,计算机系统对一些安全问题的处理还处于较低水平,而这些问题大多涉及我们的个人信息安全。第17章将讨论这些问题。
本书的大部分章节都是介绍计算机能够做什么以及如何做的。我们最终讨论了计算机不能做什么,或者至少不能做得很好。计算机在表示信息方面有固有的缺陷,程序设计只能尽可能地改善这一点。此外,还有一些问题是根本不能解决的。第18章分析了计算机的这些缺陷。
有时,我们很容易掌握细节,但却失去了全局观念。在阅读本书的过程中,请记住计算系统的全景图。每一章的首页都会提醒你目前处于计算系统的哪一个分层。所有的细节都只是为了给一个大整体贡献一个特定部分。每前进一步,你都会为它们如此精妙而吃惊不已。
1.1.2 抽象
我们刚才分析的计算系统的层次是抽象的一种例子。所谓抽象,是一种心理模型,是一种思考事情的方式,它删除或隐藏了复杂的细节。抽象只保留实现目标所必需的信息。当我们与计算机的一个分层打交道时,没有必要考虑其他分层的细节。例如,在编写程序时,我们不必关心硬件是如何执行指令的。同样,在运行应用程序时,我们也不必关心程序是如何编写的。
抽象(abstraction):删除了复杂细节的心理模型。
大量的实验表明,人在短期记忆中可以同时管理大约7条(根据个人情况,增加或减少2条)信息,这称为Miller定律,是Miller这位心理学家的第一个研究[1]。(注:此处的上角标数字表明有相应的参考文献,具体信息见书末的“参考文献”部分,全书同。)当我们需要其他信息时,可以得到它,但当我们集中于一条新信息时,其他信息就会退回二级状态。
这个概念与变戏法的人能够同时在空中保持的球数是相似的。人的智力只能同时玩7个球,当拾起一个新球时,必须抛掉另一个球。虽然7看起来是个小的数字,但关键在于每个球可以表示一种抽象,或者一大块信息。也就是说,我们抛的每个球都可以表示一个复杂的论题,只要将它看作一种想法即可。
我们的日常生活中充满了抽象。例如,要把一辆车开到商店去,我们不需要知道车是如何运转的。也就是说,我们根本不必详细地知道引擎是如何工作的,只需要知道一些基础知识,即如何与车互动以及如何操作踏板、手柄和方向盘,甚至不必同时考虑这几个方面。请参阅图1-2。
即使我们知道引擎是如何工作的,在开车时也不必考虑它。请想象一下,如果在开车时,我们必须不断地想着火花塞是如何点燃燃料从而驱动活塞推动曲柄轴的,那么就哪儿也去不了。一部汽车太复杂,我们不能同时关注它的所有方面。这些技术细节就像变戏法时抛起的球,同时抛起所有技术细节就太多了。但是,如果能够把汽车抽象成较小的规模,使我们能与之交互,那么就可以将它作为一个实体处理。此时,无关的细节将被忽略。

图1-2 汽车引擎和它的抽象
顾名思义,抽象艺术是另一种抽象的例子。一幅抽象画确实表示某些东西,但绝不会陷于事实细节的泥淖。看看图1-3所示的抽象画,标题为Nude Descending a Staircase(下楼梯的裸女)。你只能看到一个女人或楼梯的迹象,因为画家对这个女人或这个楼梯的精确细节并不感兴趣。这些细节与画家的创作意图无关。事实上,现实的细节反而会妨碍那些画家认为重要的主题。

抽象是计算的关键。计算系统的分层表现了抽象的概念。此外,抽象还以各种形式出现在各个分层中。事实上,在我们接下来要探讨的计算系统的整个进化过程中,都有抽象的影子。

时间: 2024-08-02 16:44:35

《计算机科学概论》—第1章1.节全景图的相关文章

《新编计算机科学概论》一本章小结

本章小结 虚拟机的概念有助于我们正确理解计算机的实质和计算机运算的实现途径,从而更好地进行计算机语言的研究和应用,包括了从基础的硬件层到应用层的不同层次结构的虚拟机. 计算机能直接执行用机器语言所编的程序.机器语言是由二进制代码表示的计算机器指令和数据组合而成.指令是用来指定计算机实现某种控制或执行某个运算的操作命令代码.一台计算机全部指令的集合,称为指令系统.不同的计算机有不同的指令系统. 从高级语言转换到真正可执行的机器语言有两类方法:编译和解释.这两种方式都能够将高级语言编写的源程序转换成

《新编计算机科学概论》一本章习题

本章习题 一.复习题 1. 试述数制的概念. 2. 列举出你所知道的数字系统. 3. 谈谈二进制.八进制和十六进制等数字表示方法各有什么优点和缺点. 4. 为什么使用二进制计算的时候会出现溢出? 5. 反码和补码相对于原码有什么优点?计算机中的数是用原码表示还是用反码.补码表示? 6. 汉字编码有哪几种?各自的特点是什么? 7. 图像是如何压缩存储的?哪一种图像占用空间最小,为什么? 8. ASCII码是什么编码?为什么国际上推行Unicode码? 9. 列举出你所知道的汉字输入码. 10. 尝

《计算机科学概论(第12版)》—第0章0.1节算法的作用

绪0论 绪论 计算机科学概论(第12版) 在开篇的这一章,我们探讨计算机科学所涉及的领域,介绍其历史背景,然后为我们的深入学习奠定基础. 本章内容 0.1 算法的作用 0.2 计算机器的由来 0.3 学习大纲 0.4 计算机科学的首要主题 计算机科学这门学科,是要为计算机设计.计算机程序设计.信息处理.问题的算法解决方案和算法过程本身等主题建立科学的基础.计算机科学既是当今计算机应用的支柱,又是今后计算基础设施的基础. 本书将详细介绍计算机科学,探索广阔的主题,包括构成大学计算机科学课程的大部分

《计算机科学概论(第12版)》目录—导读

版权 计算机科学概论(第12版) • 著 [美] J. Glenn Brookshear Dennis Brylow 译 刘 艺 吴 英 毛倩倩 责任编辑 杨海玲 • 人民邮电出版社出版发行 北京市丰台区成寿寺路11号 邮编 100164 电子邮件 315@ptpress.com.cn 网址 http://www.ptpress.com.cn • 读者服务热线:(010)81055410 反盗版热线:(010)81055315 内容提要 计算机科学概论(第12版) 本书是计算机科学概论课程的经典

Programming MS Office 2000 Web Components第二章第二节

web 第二章第二节 电子表格组件的高级功能 我们已经讨论了电子表格组件的大部分基本功能,现在让我们转向一些高级功能.大部分的这些高级功能Excel2000都不包含,因为这些是组件专门需要的特殊功能.而那些Excel2000中存在的功能,在电子表格组件中也被增强,使得可以提供一些新的功能. 属性绑定和实时数据 "属性绑定"是电子表格组件中最新奇的新功能之一,它是指控件能够将同一个web页面上其它对象的属性和方法用作单元值或公式参数的能力.电子表格控件使用标准的COM机制来实现绑定到属性

Programming Microsoft Office 2000 Web Components第一章第一节

web 第一章第二节 Office Web Components是什么? Office Web Components是一组的COM控件,设计的目的是为众多的控件容器提供交互的电子表格建模,数据报表和数据可视化功能.OWC库包含四个主要的组件:电子表格组件,图表组件,透视表组件和数据源组件.我们将在这一节中简要论述每个控件,然后在后续各章中讨论更多细节. 注释: COM也被称作ActiveX.当微软发明了术语"ActiveX"来描述COM技术时,我正在Visual Basic小组,这个术

《计算机科学概论》—第1章1.2节计算的历史

1.2 计算的历史 计算的历史十分悠久,计算系统为什么成为今天这个样子是可以解释的.这一节讲述的故事中的人物和事件为我们开创了现在的天地,为开启激动人心的未来奠定了基础.我们分别描述了计算硬件和软件的历史,因为它们对计算系统进化为我们所用的层次模型有着不同的影响. 我们介绍历史时采用的是叙述性方式,没有正式地定义任何概念.在接下来的几章中,我们将定义这些概念,并且详细地研究它们.1.2.1 计算硬件简史 辅助人们进行各种计算的设备自古就有,迄今为止,它们还在不断进化中.让我们来简单浏览一下计算硬

《计算机科学概论》—第2章2.2节位置记数法

2.2 位置记数法 943这个数中有多少实体?也就是说,943这个数表示多少件实物?用初中术语来说,943是9个100加4个10加3个1,或者说,是900个1加40个1加3个1.那么,754中又有多少实体?700个1加50个1加4个1.对吗?也许正确,答案是由你使用的记数系统的基数决定的.如果这些数字是以10为基数的,或者说是十进制数,也就是人们日常使用的数制,那么上述答案是正确的.但在其他记数系统中,上述答案就错了. 记数系统的基数规定了这个系统中使用的数字量.这些数字都是从0开始,到比基数小

《计算机科学概论(第12版)》—第1章1.10节通信差错

*1.10 通信差错 当信息在一台计算机的各个部分之间来回传输,或在月球和地球之间来回传输,又或者只是被保存在存储器中时,最终检索到的位模式有可能和最原始的不一致.灰尘颗粒.磁记录面的油脂或者出了故障的电路,都可能使数据被错误地记录或读取.传输通道上的静电干扰可能会损坏部分数据.在某些技术条件下,普通的背景辐射(background radiation)可以改变存储在机器主存储器中的模式. 为了解决这样的问题,人们开发了许多编码技术来检测甚至校正错误.现在,由于这些技术被大规模地内置于计算机系统