计算科学导论学习与规划_第1页
计算科学导论学习与规划_第2页
计算科学导论学习与规划_第3页
计算科学导论学习与规划_第4页
计算科学导论学习与规划_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算科学导论学习与规划 摘要:简要回顾计算科学的发展来源及计算科学求解问题的方法思想;并对机器计算与计算模型的运行过程简要概括;对现代计算机体系的结构及内部运行机理进行简要说明;最后对计算机科学的未来发展方向进行展望。关键字:计算科学;计算机语言;计算机模型;信息表示。1引言随着存储程序式通用电子计算机在上世纪40年代的诞生,和计算科学的快速发展以及取得的大量成果。计算科学这一学科也也应运而生。1946年2月14日在费城公诸于世的ENIAC标志着计算机的诞生,自此进入了计算机飞速发展的时代。计算机由第一代电子管计算机开始,历经第二代晶体管计算机、第三代集成电路计算机,直至现今的第四代大规模集成

2、电路计算机,在这期间为人类生活及科学发展做出了巨大贡献,也成为日常生活中不可或缺的一部分。正如赵老师书中所讲的:“计算科学是年轻人的科学,一旦你选择了计算科学作为你为之奋斗的专业类领域,就等于你选择了一条布满荆棘的道路。一个有志于从事计算科学研究与开发的学生,必须在大学几年的学习中,打下坚实的基础,才有可能在将来学科的高速发展中,或在计算机产品的开发和快速更新换代中有所作为。”1而沈西挺沈老师所讲的计算导论就是带领我们从一个宏观的角度去认识了解计算机,让我们对计算机有更进一步的了解,也让我明确了努力的方向,为这一学科的发展献上绵薄之力。2什么是计算科学和它的来历计算科学主要是对描述和变换信息的

3、算法过程,包括其理论、分析、设计、效率分析、实现和应用的系统研究。全部计算科学的基本问题是,什么能(有效的)自动运行,什么不能(有效的)自动运行。本科学来源于对数理逻辑、计算模型、算法理论、自动计算机器的研究,形成于20世纪30年代的后期。随着存储程序式通用电子计算机在上世纪40年代的诞生,人类使用自动计算装置代替人的人工计算和手工劳动的梦想成为现实。计算科学的快速发展以也取得大量成果,计算科学这一学科也也应运而生。3计算科学求解问题的方法思想3.1把问题变成程序把问题的求解变成程序分为五个观点及五部。A:要用计算机求解问题,人必须会解。计算机为人类制造出来帮助人类计算,求解的机器。它没有思想

4、,并不会帮助人类思考。所以,要想用计算机求解问题,人必须先会解。B:算法是人会解问题的机器角度的描绘。算法的定义,算法是求解问题步骤的精确(精细 确切)描述,是编写程序的前提。C:机器只能进行数据运算,不能识别人类语言,文字及符号。他们有自己的机器语言。D:编码是计算机科学的重要理论和技术,程序员编成的代码是连接人类语言和机器语言的桥梁。E:硬件是基础,软件是关键。软件在很大成度上弥补硬件的不足。3.2从计算科学角度给出问题求解过程图分析“过程图” A:从问题到算法是系统分析设计人员的工作,要运用计算科学课内容,可拿报酬的80%。B:从算法到结果是程序员的工作,要运用计算机科学课内容,可拿报酬

5、的20%。把连续函数变为零碎小函数问题数学知识、物理知识、领域知识数学模型数学知识,领域知识算法(支柱)算法设计数学知识领域知识算盘结果源程序数据库程序设计方法程序设计语言目标程序计算机关于计算机本身的课程结果图一 问题求解过程图4 现代计算机的体系结构4.1计算机系统计算机是由硬件和软件这两个主要部分组成的系统。计算机硬件是物理设备。软件是使硬件工作的程序(指令)集合。图二演示了计算机系统。图二 计算机系统 4.2 计算机硬件计算机硬件包括五个部分:输入设备、中央处理器(CPU)、主存储器或内存、输出设备和辅助存储设备(见图三)。输入设备主要是把程序和数据输入计算机的键盘。其他输入设备有鼠标

6、、光笔、触摸屏,以及声音输入装置。中央处理器(CPU)的功能是执行指令,例如数学计算、数据比较和数据在系统中的移动。主存储器是在进程中暂时存储程序和数据的地方。当关机时存储在主存储器中的数据就被删除了。输出设备通常是显示器或是打印机。如果是在显示器上显示,就是软复制。如果是在打印机上打印出来,就是硬复制。辅助存储器可以输入也可以输出。它可以永久保存程序和数据。当关机时,程序和数据仍然保存在辅助存储器中,以便下次使用。图三 基本的硬件组成43 计算机软件计算机软件分为两大类:系统软件和应用软件。不管硬件系统体系结构如何,软件都分为这两类。系统软件管理计算机资源。它在用户和硬件之间建立了一个接口,

7、但并不直接为用户服务。应用软件则是直接帮助用户解决问题。图四显示了计算机软件的组成。图四 软件的种类4.3.1 系统软件系统软件由一系列程序构成,这些程序管理着计算机硬件资源并执行所需的信息处理任务。这些程序分为三类:操作系统、系统支持程序和系统开发程序。操作系统提供一些例如用户接口、文件和数据库访问和到通信系统的接口。这种软件的主要目的是在保证用户访问系统的同时维护系统高效地工作。系统支持软件提供了系统工具和其他操作服务。例如排序程序和磁盘格式化程序。操作服务包括一系列程序,这些程序为操作人员和安全监视器提供运行数据,以保护系统和数据的安全。最后一类系统软件是系统开发软件,包括把程序转换为机

8、器执行语言的语言翻译器,保证程序无错的调试工具,以及不在本书讨论范围的计算机软件设计系统。4.3.2 应用软件应用软件分为两大类:通用软件和具体应用软件。通用软件从开发者处购买,并能应用于多种场合。例如文字处理器、数据库管理系统和计算机辅助设计系统。之所以称为通用软件是因为它们可以解决用户不同的计算问题。图五 软件专用软件只能应用于特定的目的。例如会计使用的总账系统和材料计划系统就是专用软件。它们只能完成所设定的任务,而不能应用于其他任务。系统和应用软件的关系可以通过图五看出来。在图五五中,每个圆圈代表一个接口点。中心是硬件,最外层代表用户。要应用此系统,用户需要使用某些应用软件。应用软件又和

9、系统软件层的操作软件交互。系统软件提供和硬件的直接相互作用。注意此图底部的开口。用户沿着此路径就可以在需要时直接和操作系统发生联系。2 5 机器计算的思想51机器计算的思想自人类诞生以来计算就一直贯穿整个人类的历史,是人类长久进行的活动。而机器计算思想的产生也是在很早之前,如我们中国古代发明的算盘,便体现了机器计算的思想,为计算机的发展也做出了很大贡献。52计算模型所谓计算模型是刻划计算这一概念的一种抽象的形式系统或数学系统,当然由于观察计算的角度不同,产生了各种不同的计算模型,比如递归函数,图灵机,lambda函数等等,有趣的是,这些计算模型的计算能力被证明是等价的。而其中的图灵机是比较有名

10、的一种。图灵机是一种抽象的计算模型。因英国数学家A.M.图灵于1936年提出而得名。研究图灵机的主要目的是对“算法”、“有效过程”这样的直观概念给出精确的数学定义,从而精确刻画可计算性与可判定性等基本概念。图灵机它由一个控制器和一条两端可无限延长的工作带组成:工作带起着存储器的作用,它被划分为无穷多个可写可擦的方格。 控制器则可以在带上左右移动,控制带有一个读写头,读写头可以读出当前方格内的符号,然后根据预先设计的状态转换指令,选择改写或抹去这一符号,然后选择往左移一格,往右移一格或者不移动,并进入下一个状态。当状态转换到停机状态,则停止运行。其特点一是从计算的过程上加以描述,二是以图形化的形

11、式表示。其基本模型可如下图表示其用途主要有三点:(1)作为语言接受器,(2)作为整数函数计算机,(3)作为语言产生器。图灵机的发明打开了现代计算机的大门和发展之路,深刻的揭示了现代通用电子数字计算机的核心内容。现在通用的计算机是电子数字计算机,而电子数字计算机的发展是建立在图灵机的基础之上。他的二进制思想使计算机的制作的简化成只需两个稳定态的元器件。这在今后的计算机制作上无论是二极管或集成电路上都显示了明显的优越性。5.3冯·诺依曼模型20世纪30年代中期,美国科学家冯·诺依曼大胆的提出:抛弃十进制,采用二进制作为数字计算机的数制基础。同时,他还说预先编制计算程序,然后由计

12、算机来按照人们事前制定的计算顺序来执行数值计算工作。人们把冯·诺依曼的这个理论称为冯·诺依曼体系结构。冯·诺依曼的思想可以简要的概括为以下三点:(1)计算机应包括运算器、存储器、控制器、输入和输出设备五大基本部件;(2)计算机内部应采用二进制来表示指令和数据;(3)将编好的程序送人内存储器中能自动逐条取出指令和执行指令。其特点也可概括为以下五点:(1)使用单一的处理部件来完成计算、存储以及通信的工作;(2)存储单元是定长的线性组织;(3)存储空间的单元是直接寻址的;(4)使用机器语言,指令通过操作码来完成简单的操作;(5)对计算机进行集中的顺序控制。从ENIAC到

13、当前最先进的计算机都采用的是冯诺依曼体系结构。所以冯·诺依曼是当之无愧的数字计算机之父。6 信息在机内的表示6.1数值信息在机内的表示计算机中的数值信息都是用二进制表示的。这些数值信息可以分为整数和实数两大类。这里的实数是既有整数又有小数的数。计算机中的整数可以分为“不带符号的整数”(或称为正整数)和“带符号的整数”两类。它们可以用8位、16位、32位甚至是64位来表示。带符号的整数由于是带符号的,所以必须使用一个二进位作为其符号位,一般用最高位,即最左边的一位作为其符号位。带正号的整数在计算机内的表示方法是:在其符号位上用“0”。 带负号的整数(负数)在计算机内的有三种表示方法:原

14、码、反码和补码。负数的原码方法是:在其符号位上用“1”。 负数的反码方法是:符号位上仍为1,但绝对值部分恰好与原码相反,“0”与“1”互变。负数的补码表示符号位上仍为1,但绝对值部分是在反码的最低位加“1”所得到的结果对于实数,任何一个实数,不论是用十进制还是二进制,均可以表示为一个纯小数和一个幂的乘积。也就是说,任何一个实数,在计算机内部都可以用一个指数(整数)和一个尾数(纯小数)来表示。这种表示实数的方法就是“浮点表示法”。在计算机中,实数也叫做“浮点数”,而整数和小数则叫做“定点数”。 36.2西文信息在机内的表示西文是由拉丁字母、数字、标点符号和一些特殊符号组成的,统称为“字符”(ch

15、aracter),所有字符的集合叫“字符集”。字符集中每一个字符都由一个二进制代码来表示。一个字符集的所有代码构成的表就称为该字符集的“代码表”,简称为“码表”。常用的西文码表是ASCII表,全称是美国标准信息交换码(American Standard Code for Information Interchange)。由ASCII码表可以看出,每个字符都是由7个二进位表示的,总共可以表示128种字符。因为字节是计算机中基本处理单位,所以每个字符还是占用一个字节的位置,一般是在最高位上置0。有人将字符集扩充,共可以容纳256种不同的字符。6.3中文信息在机内的表示中文的基本组成单位是汉字。中国

16、汉字总数在7万左右,不可能给每个汉字都一一进行编码,只能从常用汉字入手。汉字在计算机内的表示方法有以下几种编码方案。(1)国标码。又称“国标交换码”,国标码是我国给6763个常用汉字规定的标准代码,以供汉字信息在不同计算机系统之间交换使用。它由三部分组成:第一部分是字母、数字和各种符号,包括英文、俄文、日文、罗马字母、汉语拼音等,共687个;第二部分是3755个二级常用汉字;第三部分是3008个次常用汉字。(2)区位码。GB2312国标字符集的代码表分成94行、94列,行号称为区号,列号称为位号。区位码就是用该字符所在的区号(行号)和位号(列号)所在二进制代码合在一起来表示该字符的编码,共用1

17、4位二进制代码。区位码明确指出了该字符在码表中的位置。区位码不同于国标码。要在区号和位号之上各加上32以后所得到的二进制代码,才是该字符的国标码。(3)机内码。尽管国标码、区位码都只用了14位二进制代码来表示一个中文字符,但还必须用两个字节(16位二进制代码)来表示。为了与ASCII码相区别,又使每个字节的最高位总为1。这种双字节的编码叫做“机内码”。现在PC机中的汉字内码大都采用这种形式。值得注意的是,区位码和国标码是统一的、标准的,而机内码则因系统而异。(4)GBK:汉字扩充编码。6.4图形信息在机内的表示图画在计算机中有两种表示方法:图像(image)表示法和图形表示法(graphics

18、)。图像表示法是把原始画面离散成m×n个像点(或称“像素”)所组成的一个矩阵,黑白画面的每个像素用1个二进制数表示该点的灰度,彩色画面的每个像素用3个二进制数来表示该点的3个分量(如R、G、B)的灰度。汉字字形的点阵描述就是一种黑白图像表示。图形表示法是根据画面中所包含的内容,分别用几何要素(点、线、面、体)和物体表面的材料与性质以及环境的光照条件、观察位置等来进行描述,如工程图纸、地图等。汉字字形的轮廓描述法就属于图形表示。其优点是易于加工处理,数据量少。7 计算机语言我们要用计算机求解一个问题,必须事先编好程序。因此就出现了最早的机器指令和汇编语言。20世纪50年代后,计算机的发

19、展步入了实用化的阶段。然而,在最初的应用中,人们普遍感到使用机器指令编制程序不仅效率低下,而且十分别扭,也不利于交流和软件维护,复杂程序查找错误尤其困难,因此,软件开发急需一种高级的类似于自然语言那样的程序设计语言。1952年,第一个程序设计语言Short Code出现。两年后,Fortran问世。作为一种面向科学计算的高级程序设计语言,Fortran的最大功绩在于牢固地树立了高级语言的地位,并使之成为世界通用的程序设计语言。Algol60的诞生是计算机语言的研究成为一门科学的标志。该语言的文本中提出了一整套的新概念,如变量的类型说明和作用域规则、过程的递归性及参数传递机制等。而且,它是第一个

20、用严格的语法规则巴科斯范式(BNF)定义语言文法的高级语言。还有用于支持结构化程序设计的PASCAL语言,适合于军队各方面应用的大型通用程序设计语言ADA,支持并发程序设计的MODULA-2,支持逻辑程序设计的PROLOG语言,支持人工智能程序设计的LISP语言,支持面积对象程序变换的SMALLTALK、C等。电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。目前通用的编程语言有两种形式:汇编语言和高级语言。汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。由于省略了很多细节,所

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论