计算机科学导论论文xxx(河北工业大学计算机科学与软件学院,125000)摘要:简单的概述计算学科与计算机的发展历史,以及计算机求解的可计算性问题。
了解现代计算机的计算模型,以及现代计算机所依据的冯·诺依曼模式。
说明在这种模式下构成计算机的两大组成部分和数据在机内的表示。
了解现代计算机的应用,并在此基础上对计算机专业的学习做出规划。
关键词:计算学科;冯·诺依曼模式;可计算性;专业规划1引言计算问题一直是伴随着人类的发展而发展,人类的发展离不开计算学科的发展。
计算学科的发展促进着人类历史的发展。
从原始社会的结绳而治到中国古代使用的算盘,再到齿轮计算器,再到现在的计算机,计算学科在发挥着越来越重要的作用。
在现代的生活中,计算机几乎被应用到了方方面面,为人们的生活带来了更多的便利,更是节省了很多的工作量。
计算机依然是一个年轻的学科,表现了很强的生命力,充满了无限的机遇和挑战。
2计算和计算机历史[1]2.1机械计算机器提到计算机器就不得不提起我国的算盘。
中国作为世界的四大文明古国之一,对计算有了很高的成就,其中算盘就是较早的机械计算设备。
这种计算设备简单,但是却同时包含了以算盘使用口诀为具体形式的算法和以算珠的不同位置及个数来表示的内存,并且直观的输出计算结果。
但是这台机器必须依靠人操作来控制算法的执行,必须在人的配合下才能成为一台完整的计算机器。
到了17世纪,机械计算设备由于齿轮技术的发展而得到发展。
法国著名的数学家、哲学家布莱斯·帕斯卡尔(Blaise Pascal,1623-1662)发明了一种进行加减法运算的机器,另外还有德国的戈特弗里德·威尔赫尔姆·莱布尼兹和英国的查尔斯·巴贝奇等。
这些机器利用齿轮的位置来表示数据,要在规定齿轮位置的基础上机械的输入数据,在通过观察齿轮的最终的位置得到计算的结果。
第一台利用存储和编程的概念的机器是提花织机,它是由Joseph-Marie·Jacquard在19世纪初期发明的。
这种织布机是利用穿孔卡(类似于存储程序)来控制在织布过程中经线的提升。
1823年Charles·Babbage发明一种差分引擎,它不仅能够很容易的进行简单的数学运算,还可以解多项式方程。
后来,他发明了一种叫做分析引擎的机器,在某些程度上和咸蛋计算机的概念类似,该机器有四个组成部分,一个制造厂、一个存储单元、一个操作者和输出单元。
1890年,在美国人口普查局工作的Herman Hollerith设计并制作出具有编程能力的机器,该机器可以自动阅读、计数和排列存储在穿孔上的数据。
2.2电子计算机的诞生2.2.1早期的电子计算机这一时期的早起计算机并不是将程序存储在存储器中,所有的计算机都是在外部进行编程的。
第一台用来完成特定任务的计算机是通过将信息进行电子编码来实现的,它是由John V.Atanasoff 和他的助手Clifford Berry于1939年发明的。
它又被称为ABC,主要用于解决一些线性方程的系统。
在同一时期,名为konrad zused的德国数学家设计出通用的计算机,并命名为“z1”。
在20世纪30年代,美国海军和IBM公司在哈佛大学发起创建了一项工程,在Howard Aiken的直接领导下创建了一台巨型计算机名为Mark I。
这台计算机即使用了电子部件,也使用了机械部件。
在英国,Alan Turing发明了一台名为巨人的计算机,这台计算机是为了破译德国Engigma密码而设计的。
第一台通用的、完全电子化的计算机是由John.Mauchly和J.Presper发明,这台计算机被称为ENIAC.它是在1946年完成设计的,利用了将近18000个真空管,有100英尺长,10英尺高,重达300吨。
2.2.2基于冯·诺依曼模式的计算机1950年以后出现的计算机差不多都是基于冯·诺依曼模式。
虽然计算机变得速度更快,体积更小,价格更便宜,但原理却基本上是相同的。
历史学家把这一时期划分为几代,每一代计算机的改变主要体现在硬件或软件上。
第一代计算机以商用计算机的出现为主要特征。
这以时期的计算机只有专家们才能使用。
它们被锁在房子里,限制作者和计算机专家以外的人进入。
计算机体积庞大,且使用真空管作为电子开关。
此时的计算机只有大机构才能负担的起。
第二代计算机用晶体管代替真空管。
这既减少了计算机的体积,也节省了开支,从而小型企业也可以负担的起。
FORTRAN和COBOL两种高级计算机程序设计语言的发明使用使得编程更加容易。
这两种编程语言将编程任务和计算机运算任务分离开来。
第三代计算机。
集成电路(晶体管、导线以及其它部件坐在一块单芯片上)的发明更加减少里计算机的体积。
小型计算机出现在市场上。
封装的程序,就是通常所说的软件包也已经有售。
小公司也可以买到需要的软件包,而不用自己编写程序。
一个新的工业,软件工业就此诞生了。
第四代计算机出现了微型计算机。
第一台桌面计算机出现在1975年。
电子工业的发展允许将整个计算机子系统做在单块电路板上。
这一时代还出现了计算机网络。
第五代计算机。
这个时期见证了掌上电脑和台式电脑的诞生,第二代存储媒体的改进,多媒体的应用,以及虚拟现实现象。
3可计算性与计算模型3.1可计算性在计算机科学领域,一般的问题可分为两类:可解问题与不可解问题。
不可解问题又可以更细的分为非多项式问题和多项式问题。
在生活中,目前不能用计算机来解决的问题还有很多,例如停机问题就是不可解决问题。
如果想证明一个问题是无法解决的问题,那就利用反证法来证明,证明如果它可解那么停机问题也同样可以解决。
同样的,在生活中计算机可以解决的问题也有很多,为我们的现代生活带来了很大的方便。
对于一个计算机解决问题来说,我们所关注的更多的是解决问题的时间问题,也就是只一个问题的复杂程度。
同时可以解决问题又可以分为非多项式问题和多项式问题。
对于非多项式问题,以现代计算机的计算速度都是可以解决的,对于更为复杂的多项式问题虽然也可以解决,但是可能要花费更长的时间。
3.2计算模型在计算机的发展过程中,比较有影响力的计算模型是波斯特的计算模型和图灵的计算模型。
波斯特的计算模型的特点是从计算的本质上描述可计算性,是纯代数的形式,不易被人们理解。
图灵的计算模型是从计算的过程来描述可计算性,是以图形的模式,更易被人们理解接受。
3.2.1图灵机图灵机是在1936年由Alan M.Turing提出来解决问题的。
它是现代计算机的基础。
图灵机由三部分组成:磁带、控制器以及读写头。
a磁带尽管现代计算机中使用的随即储存设备容量是有限的,但图灵机的内存是无限的。
磁带任一时刻只能保存一系列顺序字符,这些字符必须是计算机所能识别的字符。
b读写头读写头任何时刻总是指向磁带上的一个符号,我们就叫这个符号为当前字符,读写头每次能且只能读写一个字符。
每读写完成一个字符后,它就会按指令前进、后退或留在原地不动。
c控制器控制器是理论上功能类似于现代计算机的CPU,是一个有限状态的自动机,该机器有提前设定好的并且能够根据输入完成从一个状态到另一状态的转换。
任一时刻它只能指向一个状态。
4冯·诺依曼模式图1存储程序机器的结构现代计算机都是基于冯·诺依曼模型的,此模型着眼于计算机的内部结够,定义了处理过程。
4.1四个子统(如图1所示)这个模型把计算机分为4个系统:存储器、算术逻辑单元、控制单元和输入/输出单元。
4.1.1存储器存储器是用来存储的区域,在计算机处理过程中用来存储数据和程序。
4.1.2算术逻辑单元算数逻辑单元时进行计算和逻辑操作的地方。
4.1.3控制单元控制单元是用来对存储器、算术逻辑单元、输入/输出等子系统的操作进行控制的单元。
4.1.4输入/输出单元输入子系统负责从计算机外部接受输入的数据;输出子系统负责将计算机的处理结果输出到计算机外部。
4.2存储的程序概念冯·诺依曼模型中要求程序必须存储在存储器中。
这和早期只有数据在存储器中的计算机结构完全不同,当时完成一系列的程要通过操作一系列的开关或改变配线系统来实现的。
现代计算机的存储器主要存储程序和相关的数据。
这意味着数据和程序应该具有相同的格式,因为他们都在存储器中。
5计算机的两大组成部分根据冯·诺依曼模型,定义了现代计算机所应该具有的两大主要组成部分:计算机硬件、计算机软件。
5.1计算机硬件计算机的组成部件可以分为三大类:中央处理单元、主存储器和输入/输出子系统。
5.1.1中央处理器中央处理器用于数据的运算。
它由三个组成部分:算术逻辑单元、控制单元、寄存器组。
算数逻辑单元用于进行算数运算和逻辑运算。
寄存器使用来临时存放数据的高速独立的存储单元CPU的运算离不开多个寄存器。
其中包括数据寄存器、指令寄存器和程序计数器等。
现在,越来越多的复杂运算该由硬件设备实现,并且需要一些寄存器来保存这些运算的中间结果,这也就是为什么在计算机CPU内部使用大量寄存器来提高运算速度的原因。
控制单元就好像是我们的大脑一样来控制这各个部分的运动,控制是通过线路的开或关来实现的。
5.1.2主存储器主存储器是计算机的另一个子系统。
他是存储单元的集合,并且每一个都有一个唯一的地址来找到。
数据以称之为字的位组的形式在存储器中传入和传出。
存储器有两种:RAM和ROM。
随机存取器是计算机中主存的主要组成部分,用户可以在RAM中写信息,之后可以方便的通过覆盖来擦除原有信息。
RAM的一个特点就是易失性。
只读存储器的内用是由制造商写进去的。
用户只能读但是不能写,它的优点是非易失性。
5.1.3输入/输出计算机的第三个子系统是称为输入输出子系统的一系列设备。
这个子系统可以使计算机与外界通信,并在断电的情况下存储程序和数据。
5.2软件计算机软件是指为了管理和维护计算机所设计的一整套程序的总和以及在这些程序设计过程中使用到的一切文档资料。
软件则是使得硬件能够正常工作的集合。
5.2.1计算机软件的分类a系统软件系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合,主要功能是调度,监控和维护计算机系统;负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。
系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如何工作的。
b应用软件应用软件是用户可以使用的各种程序设计语言,以及用各种程序设计语言编制的应用程序的集合,分为应用软件包和用户程序.应用软件包是利用计算机解决某类问题而设计的程序的集合,供多用户使用。
应用软件是为满足用户不同领域、不同问题的应用需求而提供的那部分软件。
它可以拓宽计算机系统的应用领域,放大硬件的功能。