计算机毕业论文

计算机组成原理资源拓展部分课件制作

1.多媒体课件

2 1世纪是高科技的信息时代,以计算机技术为龙头的现代信息技术奏响了新世纪宏伟乐章的主旋律,多媒体和信息高速公路已成为工业化时代向信息化时代转变的两大技术杠杆,以惊人的速度改变着人们的工作方式、学习方式、思维方式、交往方式以及生活方式!在教育领域,多媒体计算机辅助教学Multimedia Computer Assisted Instruction,简称MCAI)已是当前国内外现代教育的一个重要部分,理论和实践业已表明,决定MCAI成效的关键是要有与各学科配套的、符合教学需要的、优质的多媒体CAI课件。因此,根据教学的需要,设计与制作多媒体CAI课件是时代对每一位教育工作者的要求,是新世纪教师的一种基本信息素质。

1.1多媒体CAI的相关概念

1.1.1计算机辅助教育

计算机辅助教育来自于英文“ComDuter Based Education”,其原意是“基于计算机的教育”或“计算机化教育”,当时出于对这一新的教育技术的谨慎态度,国内将其译为“计算机辅助教育”,简称之为CBE,是指以计算机为媒介所进行的各种教育活动。

1.1.2计算机辅助教学

计算机辅助教学(Computer Assisted Instructioh',简称CAI)是计算机辅助教育(CBE)中的重要组成部分。狭义地理解,CAI是一种教学形态,是利用计算机的功能和特点,代替(或部分代替)教师面向学生,促进学生实现有效学习的教学形态。随着CAI的深入发展,我们可在更加广泛的意义上来理解这一概念。CAI是一项重要的新兴教育技术,包括了一个极为宽广的计算机应用领域。由于教育思想的差异和对概念理解角度的不同,国内外与之相关的概念与定义还有:

(1)计算机辅助学习(Computer Assisted Learning,简称CAL):作为CAI的同义词,但在一定程度上反映出教育思想的差别。CAL强调的是用计算机来帮助学生学习,例如,用计算机来查询有关教学内容;查阅有关的信息资料;用计算机来从事问题求解,学习各种学科问题的解决方法等等。

(2)计算机化教学(Computer Based Instruction,简称CBI):作为CAI的同义词或作为较高程度的计算机在教学方面的应用。

(3)计算机化学习(Computer Based Learning,简称CBL):作为CAi的同义词或作为较高程度的计算机在学习方面的应用。

1.1.3多媒体CAI

多媒体CAI是将多媒体计算机用作教学工具,为教学提供一个良好的环境,教师和学生利用计算机对各种教学媒体信息存储、处理和多形态呈现的功能来支持自己的教和学的一种活动方式。

1.2多媒体CAI系统构成

多媒体CAI系统是一套复杂的计算机应用系统,主要由硬件平台、软件平台和课件3大部分构成。

1.2.1多媒体CAI的硬件平台

多媒体CAI的硬件平台是计算机辅助教学的基础,在多媒体CAI教学活动中,是由硬件平台具体地呈现教学内容、接受学生的反应,并执行各种教学信息的处理、分析,对教学过程实施决策判断和控制评价等。从系统硬件组成的角度看,一套标准的多媒体CAI硬件主要由主机和外围设备构成。主机即多媒体计算机单元,其主要部分是进行信息处理和控制的中央处理器,又称CPU,以及存放信息数据的内存储器。外围设备包含存放大量信息的外存储器、输入设备、输出设备、视频系统、音频系统等单元。具体组成如下图所示:

1.2.2多媒体CAI的软件平台

多媒体CAI系统的软件平台主要包含3大部分:

一是多媒体系统软件;二是多媒体教学信息素材采集与制作软件;三是多媒体教学信息素材编辑合成即多媒体CAI课件的创作软件。

(1) 多媒体CAI的系统软件

多媒体CAI系统软件的核心是通常所说的操作系统,它是最底层的多媒体软件,主要用于管理多媒体CAI系统的硬件、软件资源,组织协调多媒体计算机的运行,增强系统的处理能力,同时提供人机接口,提高硬件的工作效率,并且方便用户的使用和扩充系统功能。

(2)多媒体教学信息素材采集与制作软件

常用素材制作与采集软件主要有5大类:文本输入与处理软件、音频素材采集与制作软件、静图素材采集与制作软件、动态视频素材与制作软件、动画素材采集与制作软件。

(3)多媒体教学信息素材编辑合成软件

目前简单易用的编辑创作合成软件主要有:PowerPoint、Authorware、方正奥思、Flash等。

1.3多媒体CAI课件的结构特性

1.3.1多媒体CAI课件及其信息表达元素

(1) 课件的定义

课件(Courseware)就是内容特定的计算机教学软件。是针对具体学科的学习内容而开发设计的教学软件。

(2)多媒体CAI课件

多媒体CAI课件是一种根据教学大纲的要求,经过教学目标确定、教学内容和任务分析、教学活动结构及界面设计,以计算机处理和控制的多种媒体的表现方式和超文本结构制作的课程软件,是可以用来存储、传递和处理教学信息,能让学生进行交互操作,并对学生的学习作出评价的现代教学媒体。对多媒体CAI课件的基本要求是:教学内容正确、反映教学过程和教学策略、具有友好的人机交互界面、具有诊断评价、反馈强化功能。

(3)多媒体CAI课件的信息表达元素

从信息的角度看,多媒体CAI课件的信息表达元素主要有以下几类:文本、静图、动画、音频和活动视频。

文本是指以文字和各种专用符号表达的信息形式。静图即静态图像,是多媒体CAI课件中最为重要的教学信息表达元素。可分为图形和图像两类。音频在多媒体CAI课件中主要是指声音。通常计算机表达和处理声音的方式有3种:波形声音、MIDI音频、数字化音频。

1.3.2多媒体CAI课件的基本特性与教学优势

(1)基本特性

教学信息载体的多样性、教学信息处理的数字性、教学信息组织的超文本性、教学信息表现的交互性、教学过程的可诊断性。

(2)教学优势

能优化课堂教学结构;有利于突出教学重点、突破难点;能培养学生多维化的思维方式;可有效提高教学效率;能给学生创造多层次的学习目标。

1.4多媒体CAI课件的类型与发展趋势

1.4.1多媒体CAI课件的类型

(1)助教型:这类多媒体CAI课件主要用于教师的课堂教学。

(2)助学型:这类多媒体CAI课件主要用于学生的自主学习。

(3)综合型:具有助教和助学两种功能。

(4)积件型:这类多媒体CAI课件是为教师或学生提供一个丰富的教材和素材组合的软件平台。

1.4.2、多媒体CAI课件的发展趋势

多媒体CAI课件的开发与应用有3个主流方面的发展趋势:网络CAI、智能CAI、虚拟现实CAI。

1.5多媒体CAI课件设计与制作的基本过程

根据软件工程学的理论,计算机软件的开发过程包括项目需求分析、设计、制作和评价等环节。但由于多媒体CAI课件是面向教学的,而且媒体数据较大,交互性较强,与一般的工业或商业软件相比,具有很强的特殊性,这就要求多媒体CAI课件设计与制作不仅要遵循一般软件工程规范,而且要考虑其特殊性。

1.5.1专业多媒体CAI课件设计与制作的基本环节

(1)需求分析

需求分析的实质, 所谓需求分析,是指学习者的需求,而不是教师的需求,更不是指具本的教学方法与手段的需求。

需求分析的过程:教学期望值的确定、学生实际状况的确定、差距确定、必要性的确定。

(2)内容分析

内容分析的实质

内容分析包含两个方面的含义:一方面是“教”什么的问题,另一方面是“怎么教”。“教什么”主

要是用来确定教学的范围和深度。“怎么教”是用在确宗如何把教学中的知识内容传递给学生,教学中应该采用何种策略。内容是大纲中规定的具体教学目标的体现,分析学习内容的目的就是要看教学内容适合于使用何种教学方法来表现。

内容分析的过程:①分析“教什么”(或“学什么”),②分析“怎么教”(“怎么学”),③分析适合性。

(3)资源分析:人力分析,物力分析,财力分析。

1.5.2学科课程配套多媒体CAI课件设计与制作的基本步骤

课程配套的多媒体CAI课件是指各级各类学校与具体学科课程教学紧密联系,能解决课程的教学难点和重点,进行课程教学改革相配套的多媒体cAI课件。这类多媒体CAI课件的设计与制作步骤如下:

(1)课题定义。多媒体教材的项目定义,通常包括如下内容:

课题名称,制作目的,使用对象,主要内容,组成部分。

(2)教学设计

(3)系统设计

(4)稿本编写

(5)数据准备

(6)素材整合

(7)试用与评价

(8)课件定型

2.具体设计

2.1

4.1.1课件素材的网上寻找

互联网是一个信息交流最大的平台,含有大量文字、图片、声音、视频、动画,而且很多是免费资源,采集方便,通过网络搜索引擎如 Google、百度、Sohu、Yahoo、Sina 等搜索到所需的课件素材,包括文字、图片、声音、视频、动画。平时上网要注意浏览有关学科的网站,并将喜爱的网页或网站收藏到收藏夹,方便下次打开。

4.1.2课件素材的网外挖掘

除上网外,如一些教学录像、录音带、VCD、DVD、CD-ROM、图片等,可以到学校、图书馆、音像制品商店等查阅相关资料,通过协议,相互交换、信息共享,租借、拷贝、扫描、购买等方法获得一些必需的珍贵课件素材。有条件者,与有关单位或专业人员,自己制作一些录音、录像、VCD等教学资料。

4.2资源拓展课件中“计算机发展趋势”网页的制作

①启动Dreamweaver 8,建立一个站点,起名为“毕业设计”。

②为了精品课网站课件的统一性,选择软件系统中提供的模板。在文件菜单下选择新建,在常规菜单下选择“页面设计(CSS)”,在右侧框中选择Halo左边导航,点击创建。在这个模板中,有表格、框架、层,还有设置好的链接,方便了制作。根据自己设计将不需要的部分表格、框架删掉。并调节整体效果,在相应部分输入新的链接名称。重命名为“jsjfzqs.html”的网页文件。

图2

③启动Flash 8,新建一个名为1.fla的flash文档,设置舞台大小为1024*120(与调整后的网页页面上方标题位置保持一致)舞台为白色,点击确定。选择文件菜单中的导入到舞台,在文件夹中导入图片“diannao1.jpg”,设置为1024*120,与舞台大小一致。插入图层,在新图层的第一帧上添加文本“计算机组成原理”将其传化为影片剪辑元件1,在属性中选择滤镜,添加发光浅灰色,模糊10,高质。在第40帧插入关键帧,用自由变形工具元件1调整大小,发光浅灰色,模糊20,高质。在第39帧创建补间动画。在图层1、2的第55帧都插入帧。按ctrl+回车导出动画。

图3

④将导出的动画插入jsjfzqs.html页面上方标题位置。

图4

⑤在 jsjfzqs.html页面中输入提前准备好的相关内容,调整字体大小位置。 图5

⑥使用代码编辑,输入代码:

</div>

<marquee direction="up">

<div align="center">

<h1 align="left"><span class="STYLE6">未来计算机</span></h1>

<h1 align="left"><span class="STYLE2"><span class="STYLE16"> <strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span class="STYLE16">量子计算机是一类遵循量子力学规律进行高速数学和逻辑运算、存

储及处理的量子物理设备,当某个设备是由两子元件组装,处理和计算的是量子信息,运行的是量子算法时,它就是量子计算机。</span><br />

</h1>

<div align="left">

<p><span class="STYLE2"><img src="jsj1.jpg" width="314" height="220" /></span></p>

<p align="left"><span class="STYLE20"><strong>2、神经网络计算机</strong> <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;人脑总体运行速度相当于每妙1000万亿次的电脑功能,可把生物大脑神经网络看做一个大规模并行处理的、紧密耦合的、能自行重组的计算网络。从大脑工作的模型中抽取计算机设计模型,用许多处理机模仿人脑的神经元机构,将信息存储在神经元之间的联络中,并采用大量的并行分布式网络就构成了神经网络计算机。 </span></p>

<p align="left"><span class="STYLE20"><span class="STYLE2"><img src="zwwei.jpg" width="333" height="242" /></span><br />

</span></p>

<p align="left"><span class="STYLE20"><strong>3、化学、生物计算机</strong> <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在运行机理上,化学计算机以化学制品中的微观碳分子作信息载体,来实现信息的传输与存储。DNA分子在酶的作用下可以从某基因代码通过生物化学反应转变为另一种基因代码,转变前的基因代码可以作为输入数据,反应后的基因代码可以作为运算结果,利用这一过程可以制成新型的生物计算机。生物计算机最大的优点是生物芯片的蛋白质具有生物活性,能够跟人体的组织结合在一起,特别是可以和人的大脑和神经系统有机的连接,使人机接口自然吻合,免除了繁琐的人机对话,这样生物计算机就可以听人指挥,成为人脑的外延或扩充部分,还能够从人体的细胞中吸收营养来补充能量,不要任何外界的能源,由于生物计算机的蛋白质分子具有自我组合的能力,从而使生物计算机具有自调节能力、自修复能力和自再生能力,更易于模拟人类大脑的功能。现今科学家已研制出了许多生物计算机的主要部件—生物芯片。</span></p>

<p align="left"><span class="STYLE20"> <img src="20081212233336970.jpg" width="337" height="247" /><br />

</span></p>

<p align="left"><span class="STYLE20"><strong>4、光计算机</strong> <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;光计算机是用光子代替半导体芯片中的电子,以光互连来代替导线制成数字计算机。与电的特性相比光具有无法比拟的各种优点:光计算机是“光”导计算机,光在光介质中以许多个波长不同或波长相同而振动方向不同的光波传输,不存在寄生电阻、电容、电感和电子相互作用问题,光器件有无电位差,因此光计算机的信息在传输中畸变或失真小,可在同一条狭窄的通道中传输数量大得难以置信的数据。</span> </p>

<p>&nbsp;</p>

<p>&nbsp;</p>

</div>

</div>

</marquee></p>

使得本段文字,在浏览上向上自动滚动翻阅。

⑦在左侧的层内插入图片“6f3f26c4e835bce98226acbd.jpg”设置大小为152*132。并在下方输入“这些你都知道么?”作为页面装饰。

⑧保存。按F12在浏览器上浏览

5.课件中的内容安排

5.1第一台计算机的产生

第一台计算机的诞生 第二次世界大战期间,美国军方为了解决计算大量军用数据的难题,成立了由宾夕法尼亚大学莫奇利和埃克特领导的研究小组,开始研制世界上第一台电子计算机。经过三年紧张的工作,第一台电子计算机终于在19xx年2 月14日问世了。它由18880个电子管、6万个电阻器、1万个电容器和6千个开关组成,重达30吨,占地170平方米,耗电150千 瓦,耗资45万美元。这台计算机每秒只

能运行5千次加法运算,仅相当于一个电子数字积分计算机(ENIAC即"埃尼阿克")第一台计算机诞生至今已过去50多年了,在这期间,计算机以惊人的速度发展着,首先是晶体管取代了电子管,继而是微电子技术的发展,使得计算机处理器和存贮器上的元件越做越小,数量越来越多,计算机的运算速度和存贮容量迅速增加。19xx年12月,美国Intel公司宣布研制成功世界上最快的超级计算机,它每秒可进行3280亿次加法运算(是第一台电子计算机的6600万倍)。如果让人完成它一秒钟进行的运算量的话,需要一个人昼夜不停地计算一万多年。 当年的"埃尼阿克"和现在的计算机相比,还不如一些高级袖珍计算器,但它的诞生为人类开辟了一个崭新的信息时 代,使得人类社会发生了巨大的变化。

5.2计算机常用语言

5.2.1简介

计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。

目前通用的编程语言有两种形式:汇编语言和高级语言。

汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。

汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。

高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。由于省略了很多细节,所以编程者也不需要具备太多的专业知识。

高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。

解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。

编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(*.OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如VisualBasic、VisualC++、VisualFoxpro、Delphi等。

5.2.2计算机常用语言分类

高级语言

BASIC(True basic、Qbasic、Virtual Basic)、C、C++、PASCAL、FORTRAN、智能化语言(LISP、Prolog、CLIPS、OpenCyc、Fazzy)、动态语言(Python、PHP、Ruby、Lua)等等。我们使用的C语言就是使用的后者。

专用语言

CAD系统中的绘图语言和DBMS的数据库查询语言。

机器语言是指一台计算机全部的指令集合电子计算机所使用的是由0和1组成的二进制数,二进制是计算机的语言的基础。计算机发明之初,人们只能降贵纡尊,用计算机的语言去命令计算机干这干那,一句话,就是写出一串串由0和1组成的指令序列交由计算机执行,这种计算机能够认识的语言,就是机器语言。

使用机器语言是十分痛苦的,特别是在程序有错需要修改时,计算机语言更是如此。因此程序就是一个个的二进制文件。一条机器语言成为一条指令。指令是不可分割的最小功能单元。而且,由于每台计算机的指令系统往往各不相同,所以,在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成了重复工作。

但由于使用的是针对特定型号计算机的语言,故而运算效率是所有语言中最高的。机器语言,是第一代计算机语言。

为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,这种程序设计语言就称为汇编语言,然而计算机是不认识这些符号的,这就需要一个专门的程序,专门负责将这些符号翻译成二进制数的机器语言,这种翻译程序被称为汇编程序。汇编语言同样十分依赖于机器硬件,移植性不好,但效率仍十分高,针对计算机特定硬件而编制的汇编语言程序,能准确发挥计算机硬件的功能和特长,程序精炼而质量高,所以至今仍是一种常用而强有力的软件开发工具。

高级语言

从最初与计算机交流的痛苦经历中,人们意识到,应该设计一种这样的语言,这种语言接近于数学语言或人的自然语言,同时又不依赖于计算机硬件,编出的程序能在所有机器上通用。经过努力,19xx年,第一个完全脱离机器硬件的高级语言--FORTRAN问世了,40 多年来,共有几百种高级语言出现,有重要意义的有几十种,影响较大、使用较普遍的有FORTRAN、ALGOL、COBOL、BASIC、LISP、SNOBOL、PL/1、Pascal、C、PROLOG、Ada、C++、VC、VB、JAVA等。特别要提到的:在C语言诞生以前,系统软件主要是用汇编语言编写的。由于汇编语言程序依赖于计算机硬件,其可读性和可移植性都很差;但一般的高级语言又难以实现对计算机硬件的直接操作(这正是汇编语言的优势),于是人们盼望有一种兼有汇编语言和高级语言特性的新语言——C语言。

高级语言的发展也经历了从早期语言到结构化程序设计语言,从面向过程到非过程化程序语言的过程。相应地,软件的开发也由最初的个体手工作坊式的封闭式生产,发展为产业化、流水线式的工业化生产。

60年代中后期,软件越来越多,规模越来越大,而软件的生产基本上是个自为战,缺乏科学规范的系统规划与测试、评估标准,其恶果是大批耗费巨资建立起来的软件系统,由于含有错误而无法使用,甚至带来巨大损失,软件给人的感觉是越来越不可靠,以致几乎没有不出错的软件。这一切,极大地震动了计算机界,史称"软件危机"。人们认识到:大型程序的编制不同于写小程序,它应该是一项新的技术,应

该像处理工程一样处理软件研制的全过程。程序的设计应易于保证正确性,也便于验证正确性。19xx年,提出了结构化程序设计方法,19xx年,第一个结构化程序设计语言--Pascal语言出现,标志着结构化程序设计时期的开始。

80年代初开始,在软件设计思想上,又产生了一次革命,其成果就是面向对象的程序设计。在此之前的高级语言,几乎都是面向过程的,程序的执行是流水线似的,在一个模块被执行完成前,人们不能干别的事,也无法动态地改变程序的执行方向。这和人们日常处理事物的方式是不一致的,对人而言是希望发生一件事就处理一件事,也就是说,不能面向过程,而应是面向具体的应用功能,也就是对象(Object)。其方法就是软件的集成化,如同硬件的集成电路一样,生产一些通用的、封装紧密的功能模块,称之为软件集成块,它与具体应用无关,但能相互组合,完成具体的应用功能,同时又能重复使用。对使用者来说,只关心它的接口(输入量、输出量)及能实现的功能,至于如何实现的,那是它内部的事,使用者完全不用关心,C++、Visual Basic、Delphi就是典型代表。

高级语言的下一个发展目标是面向应用,也就是说:只需要告诉程序你要干什么,程序就能自动生成算法,自动进行处理,这就是非过程化的程序语言。

简言之,常用的计算机指令语言分四类:编程语言、网页设计语言、数据库语言、架构语言。

编程语言是最普遍的指令,俗称程序设计语言。按其发展阶段,分为机器语言(面向处理机)、汇编语言(面向硬件,比如ASM)、算法语言(面向过程,比如C、Pascal等),非过程化语言(面向对象,比如Java、C++等),智能语言五大类。

网页设计语言,适用于开发商业站点的前台设计,最常用的是超文本描述语言,最经典的是html。

数据库语言,又叫结构化查询语言,适用于windows窗体和网页的后台数据支撑,比如sql、Oracle等。

架构语言,本身不是独立的学科,它是由编程语言、数据库语言、网页设计语言结合起来直接针对项目开发的语言,比如VB、Visual c#(用过visual Studio、MyEclipse或Delphi的朋友会有感触)等。可以这样理解,架构语言属于编程语言,就是编程语言进化到了可以访问数据库、操作网页的更高级阶段。

5.2.3计算机语言之父

尼盖德帮助因特网奠下了基础,为计算机业做出了巨大贡献。

尼盖德是奥斯陆大学的教授,因为发展了simula编程语言,为ms-dos和因特网打下了基础而享誉国际。克里斯汀·尼盖德于19xx年在奥斯陆出生,19xx年毕业于奥斯陆大学并取得数学硕士学位,此后致力于计算机计算与编程研究。

19xx年~19xx年,尼盖德在挪威计算机中心工作,参与开发了面向对象的编程语言。因为表现出色,20xx年,尼盖德和同事奥尔·约安·达尔获得了20xx年a.m.图灵机奖及其它多个奖项。当时为尼盖德颁奖的计算机协会认为他们的工作为java,c++等编程语言在个人电脑和家庭娱乐装置的广泛应用扫清了道路,“他们的工作使软件系统的设计和编程发生了基本改变,可循环使用的、可靠的、可升级的软件也因此得以面世。”

尼盖德因其卓越的贡献,而被誉为“计算机语言之父”,其对计算机语言发展趋势的掌握和认识,以及投身于计算机语言事业发展的精神都将激励我们向着计算机语言无比灿烂的明天前进。

5.2.4发展历史

二十世纪四十年代当计算机刚刚问世的时候,程序员必须手动控制计算机。当时的计算机十分昂贵,唯一想到利用程序设计语言来解决问题的人是德国工程师楚泽(konradzuse)。几十年后,计算机的价格大幅度下跌,而计算机程序也越来越复杂。也就是说,开发时间已经远比运行时间来得宝贵。于是,新的集成、可视的开发环境越来越流行。它们减少了所付出的时间、金钱(以及脑细胞)。只要轻敲几个键,一整段代码就可以使用了。这也得益于可以重用的程序代码库。

随着c,pascal,fortran,等结构化高级语言的诞生,使程序员可以离开机器层次,在更抽象的层次上表达意图。由此诞生的三种重要控制结构,以及一些基本数据类型都能够很好的开始让程序员以接近问题本质的方式去思考和描述问题。随着程序规模的不断扩大,在60年代末期出现了软件危机,在当时的程序设计模型中都无法克服错误随着代码的扩大而级数般的扩大,以至到了无法控制的地步,这个时候就出现了一种新的思考程序设计方式和程序设计模型-----面向对象程序设计,由此也诞生了一批支持此技术的程序设计语言,比如eiffel,c++,java,这些语言都以新的

观点去看待问题,即问题就是由各种不同属性的对象以及对象之间的消息传递构成。面向对象语言由此必须支持新的程序设计技术,例如:数据隐藏,数据抽象,用户定义类型,继承,多态等等。

简单性提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序。面向对象提供简单的类机制以及动态的接口模型。对象中封装状态变量以及相应的方法,实现了模块化和信息隐藏;提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。安全性用于网络、分布环境下有安全机制保证。平台无关性与平台无关的特性使程序可以方便地被移植到网络上的不同机器、不同平台。

在没有程序语言以前,计算机科学家们写程序都是以开关电闸(即用二进制)来实现(表示)的,后来有了汇编,在后来有了C,直到今天有了C++、JAVA、VB、Delphi等等各种各样的编程语言层出不穷。 可就在计算机语言不断的演化过程中,每一种语言都有一些共性是不变的.。这些共性可概括为以下三点:其一是:内存电位的设置.(置1或0)其二是:条件判断(if....else....)该功能可通过逻辑门实现.其三是:循环,也就是程序下一条指令地址可设置。

5.2.5常见语言及优缺点

C语言

如果说FORTRAN和COBOL是第一代高级编译语言,那么C语言就是它们的孙子辈。C语言是Dennis Ritchie在七十年代创建的,它功能更强大且与ALGOL保持更连续的继承性,而ALGOL则是COBOL和FORTRAN的结构化继承者。C语言被设计成一个比它的前辈更精巧、更简单的版本,它适于编写系统级的程序,比如操作系统。在此之前,操作系统是使用汇编语言编写的,而且不可移植。C语言是第一个使得系统级代码移植成为可能的编程语言。

C语言支持结构化编程,也就是说C的程序被编写成一些分离的函数呼叫(调用)的集合,这些呼叫是自上而下运行,而不像一个单独的集成块的代码使用GOTO语句控制流程。因此,C程序比起集成性的FORTRAN及COBOL的“空心粉式代码”代码要简单得多。事实上,C仍然具有GOTO语句,不过它的功能被限制了,仅当结构化方案非常复杂时才建议使用。 正由于它的系统编程根源,将C和汇编语言进行结合是

相当容易的。函数调用接口非常简单,而且汇编语言指令还能内嵌到C代码中,所以,不需要连接独立的汇编模块。 优点:有益于编写小而快的程序。很容易与汇编语言结合。具有很高的标准化,因此其他平台上的各版本非常相似。

缺点:不容易支持面向对象技术。语法有时会非常难以理解,并造成滥用。 移植性:C语言的核心以及ANSI函数调用都具有移植性,但仅限于流程控制、内存管理和简单的文件处理。其他的东西都跟平台有关。比如说,为Windows和Mac开发可移植的程序,用户界面部分就需要用到与系统相关的函数调用。这一般意味着你必须写两次用户界面代码,不过还好有一些库可以减轻工作量。

C++语言是具有面向对象特性的C语言的继承者。面向对象编程,或称OOP是结构化编程的下一步。OO程序由对象组成,其中的对象是数据和函数离散集合。有许多可用的对象库存在,这使得编程简单得只需要将一些程序“建筑材料”堆在一起(至少理论上是这样)。比如说,有很多的GUI和数据库的库实现为对象的集合。 C++总是辩论的主题,尤其是在游戏开发论坛里。有几项C++的功能,比如虚拟函数,为函数呼叫的决策制定增加了一个额外层次,批评家很快指出C++程序将变得比相同功能的C程序来得大和慢。C++的拥护者则认为,用C写出与虚拟函数等价的代码同样会增加开支。这将是一个还在进行,而且不可能很快得出结论的争论。

C++的额外开支只是使用更好的语言的小付出。同样的争论发生在六十年代高级程序语言如COBOL和FORTRAN开始取代汇编成为语言所选的时候。批评家正确的指出使用高级语言编写的程序天生就比手写的汇编语言来得慢,而且必然如此。而高级语言支持者认为这么点小小的性能损失是值得的,因为COBOL和FORTRAN程序更容易编写和维护。

优点:组织大型程序时比C语言好得多。很好的支持面向对象机制。通用数据结构,如链表和可增长的阵列组成的库减轻了由于处理低层细节的负担。

缺点:非常大而复杂。与C语言一样存在语法滥用问题。比C慢。大多数编译器没有把整个语言正确的实现。

移植性:比C语言好多了,但依然不是很乐观。因为它具有与C语言相同的缺点,大多数可移植性用户界面库都使用C++对象实现。

汇编语言(Assembly)

汇编是第一个计算机语言。汇编语言实际上是你计算机处理器实际运行的指令的命令形式表示法。这意味着你将与处理器的底层打交道,比如寄存器和堆栈。如果你要找的是类英语且有相关的自我说明的语言,这不是你想要的。 特别注意:语言的名字叫“汇编”。把汇编语言翻译成真实的机器码的工具叫“汇编程序”。把这门语言叫做“汇编程序”这种用词不当相当普遍,因此,请从这门语言的正确称呼作为起点出发。

优点:最小、最快的语言。汇编高手能编写出比任何其他语言能实现的快得多的程序。你将是利用处理器最新功能的第一人,因为你能直接使用它们。

缺点:难学、语法晦涩、坚持效率,造成大量额外代码—不适于心脏虚弱者。 移植性:接近零。因为这门语言是为一种单独的处理器设计的,根本没移植性可言。如果使用了某个特殊处理器的扩展功能,你的代码甚至无法移植到其他同类型的处理器上(比如,AMD的3DNow指令是无法移植到其它奔腾系列的处理器上的)。

Pascal语言

Pascal语言是由NicolasWirth在七十年代早期设计的,因为他对于FORTRAN和COBOL没有强制训练学生的结构化编程感到很失望,“空心粉式代码”变成了规范,而当时的语言又不反对它。Pascal被设计来强行使用结构化编程。最初的Pascal被严格设计成教学之用,最终,大量的拥护者促使它闯入了商业编程中。当Borland发布IBMPC上的TurboPascal时,Pascal辉煌一时。集成的编辑器,闪电般的编译器加上低廉的价格使之变得不可抵抗,Pascal编程了为MS-DOS编写小程序的首选语言。然而时日不久,C编译器变得更快,并具有优秀的内置编辑器和调试器。Pascal在19xx年Windows开始流行时走到了尽头,Borland放弃了Pascal而把目光转向了为Windows编写程序的C++。TurboPascal很快被人遗忘。

基本上,Pascal比C简单。虽然语法类似,它缺乏很多C有的简洁操作符。这既是好事又是坏事。虽然很难写出难以理解的“聪明”代码,它同时也使得一些低级操作,如位操作变得困难起来。

优点:易学、平台相关的运行(Dephi)非常好。

缺点:“世界潮流”面向对象的Pascal继承者(Modula、Oberon)尚未成功。语言标准不被编译器开发者认同。

移植性:很差。语言的功能由于平台的转变而转变,没有移植性工具包来处理平台相关的功能。

VisualBasic

BASIC。回到八十年代的石器时代,它是程序初学者的第一个语言。最初的BASIC形式,虽然易于学习,却是可怕的无组织化,它义无返顾的使用了GOTO充斥的“空心粉式代码”。快速前进到九十年代早期,虽然不是苹果公司所希望的巨人,HyperCard仍然是一个在Windows下无法比拟的吸引人的小型编程环境。Windows下的HyperCard克隆品如ToolBook又慢又笨又昂贵。为了与HyperCard一决高下,微软取得了一个小巧的名为Thunder编程环境的许可权,并把它作为VisualBasci1.0发布,其用户界面在当时非常具有新意。这门语言虽然还叫做Basic(不再是全部大写),但更加结构化了,行号也被去除。实际上,这门语言与那些内置于TRS-80、AppleII及Atari里的旧的ROMBASIC相比,更像是带Basic风格动词的Pascal。

优点:整洁的编辑环境。易学、即时编译导致简单、迅速的原型。大量可用的插件。虽然有第三方的DirectX插件,DirectX7已准备提供VisualBasic的支持。

缺点:程序很大,而且运行时需要几个巨大的运行时动态连接库。虽然表单型和对话框型的程序很容易完成,要编写好的图形程序却比较难。调用Windows的API程序非常笨拙,因为VB的数据结构没能很好的映射到C中。有OO功能,但却不是完全的面向对象。

移植性:非常差。因为VisualBasic是微软的产品,你自然就被局限在他们实现它的平台上。

Java

Java是由Sun最初设计用于嵌入程序的可移植性“小C++”。在网页上运行小程序的想法着实吸引了不少人的目光,于是,这门语言迅速崛起。事实证明,Java不仅仅适于在网页上内嵌动画—它是一门极好的完全的软件编程的小语言。“虚拟机”

机制、垃圾回收以及没有指针等使它很容易实现不易崩溃且不会泄漏资源的可靠程序。

虽然不是C++的正式续篇,Java从C++中借用了大量的语法。它丢弃了很多C++的复杂功能,从而形成一门紧凑而易学的语言。不像C++,Java强制面向对象编程,要在Java里写非面向对象的程序就像要在Pascal里写“空心粉式代码”一样困难。

优点:二进制码可移植到其他平台。程序可以在网页中运行。内含的类库非常标准且极其健壮。自动分配合垃圾回收避免程序中资源泄漏。网上数量巨大的代码例程。

缺点:使用一个“虚拟机”来运行可移植的字节码而非本地机器码,程序将比真正编译器慢。有很多技术(例如“即时”编译器)很大的提高了Java的速度,不过速度永远比不过机器码方案。早期的功能,如AWT没经过慎重考虑,虽然被正式废除,但为了保持向后兼容不得不保留。越高级的技术,造成处理低级的机器功能越困难,Sun为这门语言增加新的“受祝福”功能的速度实在太慢。

移植性:最好的,但仍未达到它本应达到的水平。低级代码具有非常高的可移植性,但是,很多UI及新功能在某些平台上不稳定。

创作工具

上面所提及的编程语言涵盖了大多数的商业游戏。但是也有一个例外,这个大游戏由于它的缺席而变得突出。卖得最好的商业游戏不是使用以上任何一门语言编的,虽然有人说“神秘岛”99%是使用3D建模工具制作的,其根本的编程逻辑是在HyperCard里完成的。

多数创作工具有点像VisualBasic,只是它们工作在更高的层次上。大多数工具使用一些拖拉式的流程图来模拟流程控制。很多内置解释的程序语言,但是这些语言都无法像上面所说的单独的语言那样健壮。

优点:快速原型—如果你的游戏符合工具制作的主旨,你或许能使你的游戏跑得比使用其他语言快。在很多情况下,你可以创造一个不需要任何代码的简单游戏。使用插件程序,如Shockware及IconAuthor播放器,你可以在网页上发布很多创作工具生成的程序。

缺点:专利权,至于将增加什么功能,你将受到工具制造者的支配。你必须考虑

这些工具是否能满足你游戏的需要,因为有很多事情是那些创作工具无法完成的。某些工具会产生臃肿得可怕的程序。

移植性:因为创作工具是具有专利权的,你的移植性以他们提供的功能息息相关。有些系统,如Director可以在几种平台上创作和运行,有些工具则在某一平台上创作,在多种平台上运行,还有的是仅能在单一平台上创作和运行。

C#

C#是一种精确、简单、类型安全、面向对象的语言。其是.Net的代表性语言。什么是.Net呢?按照微软总裁兼首席执行官Steve Ballmer把它定义为:.Net代表一个集合,一个环境,它可以作为平台支持下一代Internet的可编程结构。

C#的特点:

1.完全面向对象。

2.支持分布式。之所以有C#,是因为微软相信分布式应用程序是未来的趋势,即处理过程分布在客户机和服务器 上,所以C#一出生就注定了能很好地解决分布式的问题。

3.自动管理内存机制。C#在引入自动内存管理机制滞后,在检查程序错误和编译与运行时,速度和效率一点也不逊于JAVA.。

4.安全性和可移植性。C#的安全性是由.Net平台来提供的。C#代码经过编译后,成为一种IL(中间语言),作为受控代码,.Net提供类型安全检查等机制保证代码是安全的。同时在运行时,可以将中间代码编译为适合特定机器的代码,从而可以很方便的向其他系统移植。

5.指针的受限使用。C#不像Java那样完全摒弃了指针和手动内存管理。在默认情况下C#是不能使用指针的,但是在必要时,程序员是可以打开指针来使用,保证了编程的灵活性和效率。

6.多线程。和Java类似,C#可以由一个主进程分出多个执行小系统的多线程。 C#是在Java流行起来后所诞生的一种新的程序开发语言。是一种非常类似于C++的语言,风格上更是接近于Java,不管C++还是Java程序员,可以很方便的迁移到

C#上来。

5.3核技术介绍

在日前于美国纽约城举行的英特尔春季分析会上,首席执行官Paul Otellini及其智囊团详细描绘了这家芯片巨头的宏伟蓝图。在大刀阔斧进行成本削减之中的英特尔,经过了过去几年艰苦的商业环境,如今用新技术开创新局面。例如,可随处使用的无数双核与四核处理器、初次登场的先进45nm制造工艺以及雄心勃勃地开始努力推广应用的手持互联网设备等等。

5.3.1用于手持网络浏览器的芯片

英特尔认为,超级移动个人电脑(UMPC)将是下一个伟大的产品,它称之为功能裁减型设备。但是,UMPC真的是具有加强网络浏览能力的智能或iPhone固醇。“未来几年内,我们将看到这些移动互联网设备的兴起,”Otellini说,“它们现在已经上市,但是还没有形成规模。”英特尔已经推出其第一款UMPC级处理器,该芯片被称为McCaslin。有趣的是,它不是被用于手持浏览器中,而是被用于苹果电视中。针对这些手持浏览器应用,英特尔确实投入了一款更为强大的芯片Menlow,预计该芯片要到20xx年上半年才能准备就绪。与运行于Windows的McCaslin不同,英特尔表示,Menlow将同时支持Windows和Linux。

在Menlow之后,英特尔计划推出更小、更快和功耗更低的处理器。“这对我们来说仅仅是开头,”英特尔公司负责超级移动性组的总经理Anand Chandrasekhar说,“我们利用Menlow平台的基本技术要素已经到位,然后,我们要对其进行反复设计,以降低功耗并提高性能。”

5.3.2转向45nm芯片制造技术

在45nm这种下一代芯片制造技术进步的竞赛中,看来英特尔已经比AMD领先至少一年(45与芯片蚀刻的特征尺寸有关)。AMD可能要到20xx年底才能推出45nm的处理器。 在春季分析师活动中,英特尔公司的工艺和制造组的总经理Robert Baker说,英特尔公司的四家工厂已经在45nm芯片制造方面准备就绪。 “Penryn及其第一代45nm产品将在今年下半年推出,”Otellini说,“Nehalem—下一代微架构—将于20xx年以45nm工艺推出。在09年我们要保持推出新芯片的节凑,开始部署32nm芯片,实质上就是Nehalem的缩微版。在20xx年,我们将推出称为Sandy Bridge

的新型微架构。”

在基于45nm工艺的芯片上设计较少的功能,其固有的好处在于低功耗工作。此外,缩小裸片的尺寸容许英特尔把更多的功能添加到芯片上,Baker解释说。例如,有了Penryn,英特尔就可以利用额外的空间来提高高速缓冲存储器的容量,并增加新的指令,从而使处理器更精于处理视频和多媒体。

对于英特尔的芯片设计工程师来说,并不是不热衷于集成更多的功能。正如Baker解释说,在利用附加的空间来增加更多的功能和降低成本的要求之间存在着压力;后者要求不增加新的功能,而是利用未用空间使晶圆上能够制造出更多的芯片,从而提高产量。

几年来,向着更小特征尺寸前进的步伐一直没有受到阻碍,但是,在向45nm转移的过程中并不能享用已经取得的成就。确切地说,像英特尔和IBM这样的公司近年来一直谋求从实际和基础物理学两个方面突破硅的极限,因为在一些组件只有几个元件大的地方,片上元件更接近于那些组件的尺寸。最大的问题一直是被称为“泄漏”的问题,表现在电流并没有维持在它被期望的数值。

那就导致人们寻求新型的材料。英特尔认为,在称为高K金属新材料领域它已经取得了巨大突破,从而取代了过去30年一直使用的多晶硅。“这是在材料领域的根本变革,”Baker说。

英特尔下一步将利用由采用45nm工艺获得的额外空间,开始把图形处理集成到处理器本身当中。有趣的是,那正是英特尔公司内部一些芯片设计工程师早在上世纪90年代就强烈要求公司做的事情,据报道,当时那种行动方向被否决了,因为英特尔的业务优势更多地在于把非CPU的功能放在辅助芯片组上,从而可以分开销售。

45nm工艺也将被用于构建具有8核以上的处理器,其中,一款名为Larrabe的设计已经在画电路板。根据Otellini透露,Larrabe将“满足非常非常高性能的图形和高性能计算需求。”

5.4计算机的发展趋势

计算机技术是世界上发展最快的科学技术之一,产品不断升级换代。当前计算机正朝着巨型化、微型化、智能化、网络化等方向发展,计算机本身的性能越来越优越,应用范围也越来越广泛,从而使计算机成为工作、学习和生活中必不可少的工具。

5.4.1计算机技术的发展主要有以下4个特点

①多极化

如今,个人计算机已席卷全球,但由于计算机应用的不断深入,对巨型机、大型机的需求也稳步增长,巨型、大型、小型、微型机各有自己的应用领域,形成了一种多极化的形势。如巨型计算机主要应用于天文、气象、地质、核反应、航天飞机和卫星轨道计算等尖端科学技术领域和国防事业领域,它标志一个国家计算机技术的发展水平。目前运算速度为每秒几百亿次到上万亿次的巨型计算机已经投入运行,并正在研制更高速的巨型机。

②智能化

智能化使计算机具有模拟人的感觉和思维过程的能力,使计算机成为智能计算机。这也是目前正在研制的新一代计算机要实现的目标。智能化的研究包括模式识别、图像识别、自然语言的生成和理解、博弈、定理自动证明、自动程序设计、专家系统、学习系统和智能机器人等。目前,已研制出多种具有人的部分智能的机器人。

③网络化

网络化是计算机发展的又一个重要趋势。从单机走向联网是计算机应用发展的必然结果。所谓计算机网络化,是指用现代通信技术和计算机技术把分布在不同地点的计算机互联起来,组成一个规模大、功能强、可以互相通信的网络结构。网络化的目的是使网络中的软件、硬件和数据等资源能被网络上的用户共享。目前,大到世界范围的通信网,小到实验室内部的局域网已经很普及,因特网(Internet)已经连接包括我国在内的150多个国家和地区。由于计算机网络实现了多种资源的共享和处理,提高了资源的使用效率,因而深受广大用户的欢迎,得到了越来越广泛的应用。

④多媒体

多媒体计算机是当前计算机领域中最引人注目的高新技术之一。多媒体计算机就是利用计算机技术、通信技术和大众传播技术,来综合处理多种媒体信息的计算机。这些信息包括文本、视频图像、图形、声音、文字等。多媒体技术使多种信息建立了有机联系,并集成为一个具有人机交互性的系统。多媒体计算机将真正改善人机界面,使计算机朝着人类接受和处理信息的最自然的方式发展。

5.4.2未来计算机

①量子计算机

量子计算机是一类遵循量子力学规律进行高速数学和逻辑运算、存储及处理的量子物理设备,当某个设备是由两子元件组装,处理和计算的是量子信息,运行的是量子算法时,它就是量子计算机。

②神经网络计算机

人脑总体运行速度相当于每妙1000万亿次的电脑功能,可把生物大脑神经网络看做一个大规模并行处理的、紧密耦合的、能自行重组的计算网络。从大脑工作的模型中抽取计算机设计模型,用许多处理机模仿人脑的神经元机构,将信息存储在神经元之间的联络中,并采用大量的并行分布式网络就构成了神经网络计算机。 ③化学、生物计算机

在运行机理上,化学计算机以化学制品中的微观碳分子作信息载体,来实现信息的传输与存储。DNA分子在酶的作用下可以从某基因代码通过生物化学反应转变为另一种基因代码,转变前的基因代码可以作为输入数据,反应后的基因代码可以作为运算结果,利用这一过程可以制成新型的生物计算机。生物计算机最大的优点是生物芯片的蛋白质具有生物活性,能够跟人体的组织结合在一起,特别是可以和人的大脑和神经系统有机的连接,使人机接口自然吻合,免除了繁琐的人机对话,这样,生物计算机就可以听人指挥,成为人脑的外延或扩充部分,还能够从人体的细胞中吸收营养来补充能量,不要任何外界的能源,由于生物计算机的蛋白质分子具有自我组合的能力,从而使生物计算机具有自调节能力、自修复能力和自再生能力,更易于模拟人类大脑的功能。现今科学家已研制出了许多生物计算机的主要部件—生物芯片。 ④光计算机

光计算机是用光子代替半导体芯片中的电子,以光互连来代替导线制成数字计算机。与电的特性相比光具有无法比拟的各种优点:光计算机是“光”导计算机,光在光介质中以许多个波长不同或波长相同而振动方向不同的光波传输,不存在寄生电阻、电容、电感和电子相互作用问题,光器件有无电位差,因此光计算机的信息在传输中畸变或失真小,可在同一条狭窄的通道中传输数量大得难以置信的数据。

结 论

参考文献

[1] 田庚林,网页制作工具,清华大学出版社,2007(3)

[2] 施良方,课程理论——课程的基础、原理与问题,北京:教育科学出版社,1996

[3] 孙玫璐,建构学习型社会的职业技术教育与培训体系,全球教育展望,2003(10)

附录

相关推荐