版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、CS, ZJU3/27/2022Overview程序和指令 程序设计语言程序的程序:翻译系统高级语言的概念怎样编写程序软件工程简介2022-3-272计算机科学基础6.1 概述程序和软件是两个不同的概念,整个程序设计过程是软件设计与开发的基础 ,是软件开发的一个部分;程序加上该程序的文档就是软件。程序设计分解为几个步骤,如程序说明、设计、编写代码以及测试、文档等。程序设计需要使用程序设计语言。可视化程序设计成为今天程序设计的主流 。2022-3-273计算机科学基础6.2 程序和指令程序:按步骤执行从广义上看,程序是计算机进行某种任务操作的一系列步骤的总和。如加法运算,可归纳一个加法程序的步骤
2、为:输入被加数和加数进行加法运算将加法运算得到的结果即和数输出是一组计算机指令的有序集合。程序设计既是工程师又是艺术家的工作。2022-3-274计算机科学基础指令和指令系统指令(Instruction)和指令系统(Instruction Set)指令和指令系统构成计算机处理器的重要部分,又是整个程序的基础。指令就是计算机执行的最基本的操作。如处理器从内存中读取一个数据,进行算术运算,或者是逻辑判断等,都属于一条指令的操作。指令系统是所有指令的集合。从计算机硬件和软件的关系来看,指令及指令系统是计算机硬件和软件的接口。从CPU角度看,指令是计算机处理器执行的二进制代码。 软件硬件 指令指令作为
3、计算机软件和硬件的接口 指令的3种主要类型 数据传输类指令将数据从一个地方(源)传输到另外一个地方(目的) 一般把“取出”操作叫做“读”(Read),把“存入”操作叫做“写”(Write)算术/逻辑运算类指令包括基本的算术运算和逻辑、比较运算,操作对象是数据;控制操作类指令改变CPU执行指令的顺序分为有条件转移和无条件转移;6.3 程序设计语言计算机程序设计语言的级别就是根据它们和机器的密切程度划分的:越接近机器的语言级别越低,越远离机器的语言越“高级”。 面向机器硬件的机器语言 二进制语言,用二进制机器指令来编写程序 汇编语言 机器语言的符号化,一般用英文单词或缩写表示机器指令,因此也是面向
4、机器的。 面向过程的高级语言 接近数学描述求解问题的过程,它和机器没有直接关系。语法与自然语言接近。 面向对象的高级语言2022-3-278计算机科学基础机器语言和指令机器语言就是指令:二进制代码,能被计算机直接执行,一条机器指令需要包含如下信息:操作类型:有几十种到上百种,如加法、访问存储器、输入输出操作等;操作数或者操作数的的存储位置:它是操作数的位置信息,如内存单元、CPU内部寄存器,或指令中的立即数;操作结果的存储地址:它说明将结果存储到什么地方;下一条指令的地址信息:它说明到哪里去取下一条指令;2022-3-279计算机科学基础2022-3-2710计算机科学基础机器指令的一般格式
5、例:加法指令一般指令隐含结果存放到第一个操作数的位置,下一条指令是顺序执行。2022-3-2711计算机科学基础指令的执行过程汇编语言 用容易记忆的文字符号来表示指令中的操作码和地址码,这种符号叫助记符CPU所有指令助记符的集合以及使用规则构成了助记符语言汇编语言(Assemble Language)例子(汇编语言的一条加法语句) ADD A,B意思是将存储地址A和B的内容相加,结果存储在地址A或B的存储单元(不同的计算机有不同的规定)。汇编语言语句与二进制的机器指令相比,汇编语言语句可读性较好它仍然是一种面向计算机硬件的语言,程序员必须熟悉计算机硬件结构、指令系统和指令格式等程序移植性也较差
6、汇编程序将用汇编语言编写的源程序(汇编语言程序)翻译为“机器语言”的程序,它属于“翻译程序”高级语言是一种与机器指令系统无关、表达形式更接近于被描述问题的语言。任何一种高级语言都有其语义和语法规定,程序员熟悉了该语言的规则就可以灵活地设计出解决各种实际问题的程序。分为两种类型 :面向过程的高级语言面向对象的高级语言2022-3-2714计算机科学基础面向过程的高级语言每一个语句都是为完成一个特定的任务而对计算机发出执行的命令,面向过程就是程序员将解决问题的步骤用语言表述出来,构成程序。BasicBasic(Beginner ALL-Purpose Symbolic Instruction Co
7、de)在计算机技术发展史上应用得最广泛的语言之一适于编程初学者编程,简单易学非计算机专业出身的编程者广泛使用 C C语言语言C是一种高级语言,被广泛用于专业程序设计既有高级语言的优点,又有汇编语言的效率,因此也有人把它定位为“中级语言”它的命令可直接对计算机内存单元中的数据进行操作,适合编写较接近硬件操作又要求处理速度的程序2022-3-2715计算机科学基础Pascal语言语言Pascal为纪念计算机先驱Pascal命名的作为一种教学和应用开发语言被普遍接受 Fortran语言语言第一个高级语言:IBM公司在1957年开发的更适合于科学、数学和应用工程方面的应用,编程人员可用它方便地描述数学
8、问题,解决数学计算 Cobol语言语言COBOL是一种专门的商用的高级程序设计语言大部分命令都与英语类似比较适用于存储、检索公司的财务信息,实现票据管理和工资报表等功能Ada语言语言它是为美国国防部开发署(DoD)设计的,由所有承包DoD工程的厂商统一使用的语言。 Ada还具有实时处理和并行处理能力。2022-3-2716计算机科学基础面向对象的高级语言(OOPL,Object-Oriented Programming Language )封装(Encapsulation) 。 封装是指把对象的属性和操作结合在一起,构成一个独立体。隐蔽内部信息,对于外界而言,只需知道对象所表现的外部行为,不必
9、了解对象行为的内部细节继承(Inheritance) 。 继承是指子类可以拥有父类的属性和行为,提高了软件代码的复用性,定义子类时不必重复定义那些已在父类中定义的属性和行为。多态性(Polymorphism) 。 多态性是指对象可以具有不同的行为。多态性机制不仅为软件的结构设计提供了灵活性,还减少了信息冗余,提高了软件的可扩展性。2022-3-2717计算机科学基础Visual Basic简称VB,BASIC引入了面向对象的设计方法为开发图形界面的应用程序而设计的它比较简单易学,功能强大,得到广泛应用JAVASun Microsystem公司开发具有纯面向对象、平台无关性、多线程、高安全性等特
10、点解决了困扰软件界多年的软件移植问题C+传统的C语言进行面向对象的扩展而成的语言它在C语言的基础上增加了面向对象程序设计的支持Delphi语言Delphi使用Pascal编程语言,它是面向对象的,也是开发GUI程序很好的工具。类似的语言或叫做开发工具的还有Borland公司的PB(Power Build)等2022-3-2718计算机科学基础2022-3-27其他语言函数型语言:主要有LISP和Scheme 。说明型语言:也叫逻辑语言,它被用于根据逻辑推理的原则回答问题。超文本标记语言 :由一种格式标记和超链接组成的“伪语言”,主要用于网络上的信息服务。Perl:一种“脚本语言”,程序以ASC
11、II文本保存,只在执行时对程序进行解释或者编译。Python:脚本语言:它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。SQL :是一种结构化查询的语言。19计算机科学基础基于组件的程序设计 基于组件的程序设计是微软提出的思想COM(Component Object Model,组件对象模型)又称为中间件组件技术属于面向对象的程序设计技术 使用COM技术,一个新的应用系统的开发不必按照传统的方法进行所有代码的编写,可以通过组件进行“组装”软件组件与语言无关,以二进制代码形式发布对于提高开发速度、降低开发成本、增加应用软件的灵活性、降低软件维护费用很有帮助2022-3-276.
12、4 程序的程序:翻译系统人们通常使用计算机高级语言编写程序-能更好地描述求解问题步骤。除了机器语言编制的程序,其他任何语言编写的程序都需要相应的翻译系统翻译程序(语言处理系统)翻译计算机程序任务就是把其他程序翻译为机器语言程序本身就是程序是程序的程序翻译程序归类为系统软件不同的编程语言的翻译系统是不同的。21计算机科学基础程序的翻译系统 源程序翻译系统目标程序n用高级语言编写的程序通称为“源程序”,把翻译后的机器语言程序称为“目标程序”。n 翻译程序根据功能的不同分为n解释程序(Interpreter,也叫做解释器)n编译程序(Compiled Program或称为编译器Compiler) 解
13、释程序对源程序代码进行逐句翻译,翻译一句执行一句翻译过程中并不生成可执行文件如果需要重新执行该程序,就必须重新翻译对计算机的硬件和存储器要求不高,程序运行速度较慢一般不提供任何分析和程序错误更正JAVA,BASIC使用解释系统编译程序 编译程序将整个源程序代码文件一次性翻译成目标程序代码,最终生成可执行文件。编译后的程序可被单独执行,和翻译程序无关 类比:翻译一本书编译系统只能够发现不合法的语句和表达,它并不能发现算法上的错误各种高级语言的开发环境中一般都包含了编译系统功能2022-3-27使用编译系统的程序执行效率较高。编译系统是一个十分复杂的程序系统,它是一个信息加工流水线,被加工的是源程
14、序,最终产品是目标程序。大多数语言系统都将源程序的编辑、翻译、调试、运行等功能集成为开发环境(IDE)。25计算机科学基础2022-3-276.5 高级语言的概念常量、变量和数据类型标识符:以字母开头并以字母、数字和下划线组合而成。标识符是一个运算对象的名字。数据类型程序设计语言需要给参与运算的各种数据定义其类型,每一种数据类型都有其取值范围。一般程序设计语言的基本数据类型有三种:整型、实型和字符型。其他 ,如Java语言,有逻辑型(Boolean),VB语言有货币、日期/时间等类型。语法规则要求运算对象的数据类型保持一致,如果不一致的话则按规则强制转换。26计算机科学基础2022-3-27常
15、量常量在程序执行过程中,这个量将固定不变。程序中的常量有两种:文字常量、符号常量。变量变量就是可以被改变的量。程序使用标识符代表变量的内存位置,程序员只需要对这个变量进行赋值、运算即可。变量在使用之前需要对其先行定义类型。有些语言规定使用变量之前还必须先给这个变量赋一个初值。27计算机科学基础2022-3-27构造数据类型将基本类型和数据结构联系起来组成的新的、复杂的数据类型,一般称为构造数据类型,也称为派生数据类型。数组使用一个标识符代表一组相同类型的数据,以下标形式区分各个元素。结构和指针结构可以表示复杂的数据记录。指针是一种对变量访问的形式,存放的是数据变量的地址。字符串、链表、队、树2
16、8计算机科学基础2022-3-27基本语句语句是使程序执行的动作,被翻译程序翻译成一条或几条指令。赋值语句按规则将一个值存入到变量名所代表的存储单元中。表达式语句不同表达式构成的语句。复合语句用括号将多行语句定义为一个语句称为复合语句(语句块)。程序将复合语句视做一个语句进行处理。转移语句著名的goto语句。返回语句通过调用的方法构造程序时,使用return语句可以将运算结果返回调用程序。输入、输出语句29计算机科学基础2022-3-27分支语句实现分支结构的语句,根据条件决定程序下一步该执行程序的哪一条语句或语句块。30计算机科学基础2022-3-27循环语句实现循环结构的语句为循环语句;大
17、多数高级语言有多种循环语句;31计算机科学基础2022-3-27函数和方法公共代码:函数或方法通过调用函数或方法来获得其实现的功能主程序调用子程序,子程序运行结束后通过返回语句回到主程序。主程序调用时给出的参数称“实际参数”,而子程序中对应的参数称为“形式参数”。 “实际参数”与“形式参数”类型一致、数量一致、顺序一致32计算机科学基础2022-3-276.6 怎样编写程序程序设计不仅是编写程序代码,它是一个系统过程。通常把这个过程分为6个步骤:问题的定义设计方案编码测试编写文档运行维护33计算机科学基础2022-3-27理解问题设计一个程序首先要了解问题,对问题进行清晰、明确的定义是解决问题
18、过程中最重要、也是最容易被忽略的一步。一个组织得好的程序项目,花在这个阶段的时间应该占到整个程序开发设计时间的25% 30%,甚至更多。这项工作一般可由具有比较丰富程序设计经验的系统分析员来做。在这个阶段主要弄清以下几个问题:程序目标是什么?即程序需要解决什么样的问题可能需要输入哪些数据?数据具体的处理过程和要求是什么?程序可能产生的数据输出以及输出形式是什么?34计算机科学基础2022-3-27程序设计在本阶段需要对问题设计出具体的解决方案,要一步一步地显示解决问题的过程。其关键是设计出一个好的算法,并使用合适的逻辑结构。要确定使用的程序范式(Programming Paradigm)。即选
19、择使用哪种编程技术或者选择哪种语言作为开发工具。考虑程序运行在网络环境中还是单台机器上。如果原来有旧的程序在运行,那么新程序如何兼容以前的程序。35计算机科学基础2022-3-27编写程序代码在此阶段,使用所选择的编程语言,按照设计过程中形成的算法编写程序代码。不同的语言适合不同的应用,通用语言能够适合大多数编程任务,而较为特殊的应用则应选择针对性更强的其他语言。同时,语言的选择还取决于编程者对语言的熟悉程度,当然也要看它是否能够完成任务。36计算机科学基础2022-3-27寻找错误:程序测试在此阶段,要调试已编好的程序,找出程序中的逻辑错误和语法错误。如果违反编程语言的语法规则,就会发生语法
20、错误;如果程序得到的输出不对,则可能是由于程序没有正确地实现算法,这是逻辑错误。程序测试和纠正错误交错进行,但程序测试是“测试程序中的错误,而不是使得程序中没有错误”。常用的测试方法有:黑盒测试是把一组测试数据输入程序,检查程序的结果是否是预期的。大多数专业软件公司提供给用户的Beta()版也叫测试版,就是属于黑盒方法。白盒测试一般是专业测试,输入一组特意设计的数据让程序执行,测试程序是否按照设计流程要求执行37计算机科学基础2022-3-27编写程序文档 程序文档包括设计过程中形成的文档和设计完成后的使用说明,文档形式有两种:一种是在编写程序代码时在代码行后面加注释。另一种是按照一定规则专门
21、编写。运行与维护程序的安装、系统配置对用户的培训软件维护38计算机科学基础2022-3-276.7 软件工程简介 什么是软件开发开发软件需要进行系统分析,设计,编码,测试。大型程序无法由一个程序员完成,因此众多开发人员的协调、管理也是软件开发需要考虑的问题。开发软件不是一个单纯的计算机问题,这里面需要运用有关的系统分析原理,需要建立必要的数据模型,需要使用工程管理的方法进行开发管理。39计算机科学基础2022-3-27软件生命周期软件危机软件工程:开发传统的大型工程一样去管理软件开发和工业产品一样,软件也有一个生产、使用和消亡的过程,称为软件的生命周期。软件生命周期法从总体上包括分析、设计、实
22、现(开发软件)和维护等过程,一般较大型的软件系统都需要经历以上这几个阶段,当新的系统替代原系统后,原系统的生命周期也就结束了。40计算机科学基础2022-3-27软件开发模型建立开发过程模型是建立对软件开发过程的总体认识和描述,主要有:瀑布模型增量模型螺旋模型RAD模型41计算机科学基础2022-3-27瀑布模型这是软件开发过程最为流行的一个模型,包括了分析、设计、实现(编码)、测试和维护5个方面,结构自上而下,如瀑布流水一般,故得名瀑布模型。由于它的线形特点,下一个过程必须在上一个过程结束的基础上,如编写代码前,设计工作必须完成。它的缺点是缺乏灵活性,无法解决软件需求不明确的问题。42计算机
23、科学基础2022-3-27增量模型又称为演化模型。软件在该模型中是“逐渐”开发出来的。开发人员先开发出一部分程序,向用户展示,用户提出修改意见,不断完善,最终获得满意的软件产品。该模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。软件开发是一个迭代的过程。43计算机科学基础2022-3-27螺旋模型螺旋模型(Spiral Model),沿着螺线旋转,在4个象限上分别表达了4个方面的活动,即:编制计划、风险分析、实施工程和客户评估。螺旋模型将瀑布模型与演化模型结合起来,并且加入两种模型均忽略了的风险分析,比较适应具有高风险项目的开发过程。44计算机科学基础2022-3-27RAD模型强调极快的开发周期。它主要用于大型信息系统的开发,包含了以下5个阶段。业务建模。业务活动中的信息流被模型化,确定信息来源及流向和使用者。数据建模。业务信息流被精确定义为对象和属性以及对象间的关
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二四年度知识产权管理与保护合同
- 2024版物业服务合同标的及服务质量要求
- 二零二四年度工程索赔合同
- 2024年度城市轨道交通建设贷款合同
- 04版建筑设计与工程咨询合同3篇
- 2024年度学校操场看台电动伸缩门采购及安装合同
- 2024年度二手自行车买卖合同范本
- 2024年度无人机设备采购与租赁合同2篇
- 二零二四年度销售合同:电子产品批量销售协议
- 个人借款给企业的合同
- 《电气接线规范》课件
- 绞窄性肠梗阻汇报演示课件
- 直肠癌放疗护理查房课件
- 2024年北京北燃实业集团招聘笔试参考题库含答案解析
- c4 水稻的研究现状及机制
- 2024年通用技术集团招聘笔试参考题库含答案解析
- 【公开课】海水的性质课件+2023-2024学年高中地理人教版(2019)必修一+
- 《装配式建筑施工合同范本》正规范本(通用版)
- 2022年天津卷语文模拟卷汇编-文言文阅读(解析版)
- 《体育保健学》课件-第三章 运动性病症
- 专题25 一元一次方程应用之储蓄利息问题(解析版)
评论
0/150
提交评论