《大学计算机基础》课程介绍软件开发与程序设计基础.ppt
《《大学计算机基础》课程介绍软件开发与程序设计基础.ppt》由会员分享,可在线阅读,更多相关《《大学计算机基础》课程介绍软件开发与程序设计基础.ppt(117页珍藏版)》请在三一办公上搜索。
1、第5章 软件开发与程序设计基础,主讲教师郭松涛,本章教学计划理论教学(课堂教学):4学时实验教学(上机实习):2学时本章教学重点1.程序的基本概念及程序设计语言2.程序设计基本方法和过程3.数据结构、算法描述及分析 4.软件开发方法及工具,第5章 软件开发与程序设计基础,5.1 程序设计的基本概念5.2 程序设计的基本过程 5.3 数据结构与算法的基本概念 5.4 软件开发方法,第5章 软件开发与程序设计基础,5.1 程序设计的基本概念,程序的基本概念程序是程序设计中最基本的概念。程序是计算机软件的本体,又是软件的研究对象。实际上,一个程序是有限指令的序列。程序除了有作者之外,还应该有执行者来
2、实现这些指令。实现指令称为执行或运行程序。一个运行中的程序称为进程。计算机程序分为可执行程序、目标程序和源程序三类。可执行程序是由机器指令组成的程序,可以直接在CPU中执行并得到运行结果。目标程序是一种中间代码的程序,是源程序经过编译后产生的结果。源程序泛指由计算机语言书写的程序,源程序需要经过编译器或者解释器等软件工具翻译为可执行程序。,5.1 程序设计的基本概念,程序的基本概念程序可能有几种状态。静态程序指在外存储器中存放的源程序、目标程序和可执行程序,他们一般以文件形式存在。静态的可执行程序文件需要通过“装入”内存储器才能由CPU执行,这个过程称为“运行程序”。运行中的程序称为动态程序。
3、动态程序一般分为若干“进程”,由CPU分别执行进程的指令序列,完成相应的计算任务。进程(又称计算机作业)是为CPU运行程序组织的内存区域,由被执行程序的机器指令、用户数据区和系统数据区组成。它是程序运行的基本单位。,5.1 程序设计的基本概念,程序的基本概念计算机程序设计经过了以下四个发展过程:(1)机器语言程序阶段(1946一1956年)(2)高级语言程序阶段(1956一1958年)(3)结构化程序阶段(1958一1975年)(4)面向对象和自动化程序阶段(1975至今),5.1 程序设计的基本概念,5.1.2 程序设计语言概述 程序设计语言是用来定义计算机程序的一组记号和一组语法规则。它是
4、一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下的操作。程序设计语言有三个方面的因素,即语法、语义和语用。语法表示程序的结构或形式,亦即表示构成语言的各个记号之间的组合规律,但不涉及这些记号的特定含义,也不涉及使用者。语义表示程序的含义,亦即表示按照各种方法所表示的各个记号的特定含义。语用表示程序与使用者的关系。,5.1 程序设计的基本概念,5.1.2 程序设计语言概述一段程序的含义就是该语言的语义,如:if(x0)y=1;else y=-1;其语义是:如果x0 则y=1,否则y=-1。语用就是该程序属于谁。它有
5、2层含义,一方面指出程序属于哪个模块,另一方面指出程序起作用的范围。一般说来,程序设计语言有以下基本成分:(1)数据成分:用以描述程序中所涉及的数据;(2)运算成分:用以描述程序中所包含的运算;(3)控制成分:用以表达程序中的控制构造,或者是程序流程控制;(4)传输成分:用以表达程序中数据的传输。,5.1 程序设计的基本概念,5.1.2 程序设计语言概述1)程序设计语言的分类按语言级别,有低级语言和高级语言之分。低级语言主要是机器语言和汇编语言。高级语言的表示方法要比低级语言更接近于待解问题的表示方法,大量引入数学表示形式,其特点是与具体机器无关,易学、易用、易维护。一般说来,一个高级语言程序
6、单位要对应多条机器指令,相应的编译程序所产生的目标程序往往功效较低。按照程序实现的机制,有过程式语言和非过程式语言之分。过程式语言的主要特征是明确问题解决的详细步骤,设计者需要指明可以顺序执行的一系列操作运算,以表示相应的计算过程。例如,FORTRAN、ALGOL60等都是过程式语言。非过程式语言的含义是相对的,凡是无法指明可顺序执行的程序运算的语言,都是非过程式语言。,5.1 程序设计的基本概念,按照应用范围,有通用语言和专用语言之分。目标非单一的语言,称为通用语言,例如 FORTRAN、C等都是通用语言。目标单一的语言称为专用语言,如APT(数控机床专用语言)、PHP(动态网页设计语言)等
7、。按照程序语言的使用方式,有交互式语言和非交互式语言之分。具有反映人一机交互作用的语言称为交互式语言,如BASIC语言就是交互式语言。反之称非交互式语言,如FORTRAN、PASCAL等都是非交互式语言。传统的程序设计语言大都以冯诺伊曼(Von Neuman)式计算机为设计背景,因而又称为诺伊曼式语言。这类语言的特点是“存储程序”和“过程式”,程序设计需要详细规定程序运行过程的步骤。程序和程序所需的数据必须被存储在计算机的主内存中,当执行程序时,就从主内存中读取程序中的指令和数据并把计算结果存入主内存。,5.1 程序设计的基本概念,5.1.2 程序设计语言概述2)程序设计语言的发展史(1)第一
8、代语言(大约从1946年开始)(2)第二代语言(大约从1950年早期开始)(3)第三代语言(大概从1950年中期开始)(4)第四代语言(4GL,超高级语言。大致从二十世纪八十年代开始),5.1 程序设计的基本概念,5.1.2 程序设计语言概述3)常用高级程序设计语言简介FORTRAN(FORmula TRANslation)公式翻译程序设计语言。是在IBM公司的704系列计算机上开发的。多年来,FORTRAN一直被选作为科学和工程的计算语言,它广泛支持浮点运算甚至支持复数运算。COBOL(COmmon Business Oriented Language)面向商业的通用语言。1960诞生。是第
9、一个面向文件的数据处理语言。它采用300多个英语单词作为保留字,以一种接近于英语书面语言的形式来描述数据特性和数据处理过程。在银行业、证券交易、公司财务管理、情报检索、企业管理中使用最广泛的高级语言。,5.1 程序设计的基本概念,5.1.2 程序设计语言概述3)常用高级程序设计语言简介ALGOL60(ALGOrithmic Language60)算法语言60。程序设计语言由技艺转向科学的重要标志,其特点是局部性、动态性、递归性和严谨性。它由欧洲的研究人员设计,以严格的语法规则定义语言,使用BNF(巴克斯范式)来描述文法,引入了分程序结构。从某种意义上来说ALGOL60正如一粒种子,成为许多流行
10、的通用语言的直接祖先。甚至在今天,人们也用到“类ALGOL”的程序设计语言。PASCAL(Philips Automatic Sequence CALculator)菲利浦自动顺序计算语言。在ALGOL60的基础上发展起来的重要语言,其最大特点是简明性与结构化。Pascal程序设计语言继承了ALGOL的许多结构,但也包括了COBOL的记录处理。该语言由瑞士计算机科学教授沃思(Niklaus Wirth)于1971年设计而成。,5.1 程序设计的基本概念,5.1.2 程序设计语言概述3)常用高级程序设计语言简介BASIC(Beginners All-purpose Symbolic Instru
11、ction Code)初学者通用指令码。是Dartmouth数学系的John Kemeny和Thomas Kurtz在1964年为Dartmouth的分时系统开发的。BASIC语言适合初学者学习程序设计,特别是非理工科的学生。BASIC程序员只需坐在终端前,在数字之后敲入BASIC语句,即可建立BASIC程序。数字表明程序中语句的顺序。最简单的BASIC程序为:10 LET X=(7+8)/320 PRINT X30 END输入以上程序代码后,敲入运行命令RUN。该程序在终端上显示(7+8)/3的计算结果。BASIC语言不需要程序员指定一个变量是按整数存储还是浮点数存储。大多数的BASIC版本
12、是解释程序,非常方便对程序代码的修改。,5.1 程序设计的基本概念,5.1.2 程序设计语言概述3)常用高级程序设计语言简介C语言于1969年1973年产生。它是BCPL(Basic Combined Programming Language)和B语言的后继,故取名C语言。C语言是第一个成功实现系统软件开发的高级语言,是一种受到专业程序员欢迎的程序语言。它由贝尔电话实验室的Dennis M.Ritchie 在PDP-11计算机上首先实现,并用它重写了UNIX操作系统。从那时起,操作系统和C语言的关系就紧密起来了。C 是很简洁的语言,例如,Pascal中用begin和end 来定义语句块,在C语
13、言中用来代替。C语言支持移位操作和按位逻辑操作等CPU的基本指令。另外,C语言还支持指针,指针实质上是符号化的内存地址。C语言支持多种数据结构,具有很高的可移植性。LISP(LISt Processing)表处理语言。是由John McCarthy 于1960年设计而成的,是一个著名的非冯诺依曼的语言。LISP 引进函数式程序设计概念和表处理设施,在人工智能的领域内广泛使用。LISP程序处理的对象是符号列表,它的数据和程序的表示是一致的,都使用S-表达式,操作符采用前缀形式,程序控制结构采用递归形式。,5.1 程序设计的基本概念,5.1.2 程序设计语言概述3)常用高级程序设计语言简介 PRO
14、LOG(PROgramming in LOGic)逻辑程序设计语言。它已广泛用于关系数据库、数理逻辑、抽象问题求解、自然语言理解等多种领域,l972年由法国科学家研制。ADA一种现代模块化语言,属于ALGOLPASCAL语言族,但有较大变动。其主要特征是强类型化和模块化,便于实现个别编译,提供类属设施,提供异常处理,适于嵌入式应用。Ada是1979开发的,为美国国防部使用的一种语言,是以Augusta Ada Byron命名的,他是英国数学家查尔斯巴贝奇(Charles Babbage)的差分机的见证人。,5.1 程序设计的基本概念,5.1.3 程序设计语言处理程序 常见的语言处理程序有汇编程
15、序、解释程序和编译程序。1)汇编程序 汇编程序又称汇编系统。它的功能是将汇编语言程序翻译成机器语言程序。由于汇编语言的指令与机器语言的指令基本保持了一一对应关系,所以汇编的过程比较简单,效率非常高。汇编的基本步骤是:将指令助记符转换为机器操作码。将符号操作数转换为地址码。将操作码和操作数构成机器指令。汇编程序是为特定的CPU指令系统设计的,因此没有互换性。不同的CPU指令集有不同的汇编程序。可以将机器语言程序转换为相应的汇编语言程序,这个过程称为反汇编,这样的系统程序称为反汇编程序。,5.1 程序设计的基本概念,5.1.3 程序设计语言处理程序2)编译程序编译程序又称为编译系统。它的主要功能是
16、将高级语言编写的程序翻译成等效的机器语言程序,以便直接运行程序。其翻译过程如图所示。编译程序主要执行下列步骤:编译连接加载,5.1 程序设计的基本概念,5.1.3 程序设计语言处理程序3)解释程序解释程序又称解释系统。所谓解释实际上是对源程序的每一可能的行为,都以机器语言编写一个子程序,用来模拟这一行为。因此对高级语言程序的解释,实际上调用一系列的子程序来完成。解释过程如图所示。一个解释程序是一个重复执行下列步骤的程序:取下一个语句;确定被执行的活动;执行这一活动。,5.1 程序设计的基本概念5.2 程序设计的基本过程 5.3 数据结构与算法的基本概念 5.4 软件开发方法,第5章 软件开发与
17、程序设计基础,5.2 程序设计的基本过程,一个程序应该包含两个方面的内容:一是程序要处理的对象,人们用数据和数据之间的关系来表示,即数据结构(data structure);二是对这些对象的处理方法,即操作步骤,人们用算法(algorithm)来描述。著名计算机科学家沃思(Niklaus Wirth)提出了一个公式:“程序=数据结构+算法”,诠释了程序设计的本质。实际上,一个程序除以上两个因素外,还应考虑程序设计的语言和程序设计方法,因此,可以有如下的表示:“程序=数据结构+算法+程序设计方法+语言工具和环境”也就是说,以上四个方面是一个程序设计人员应具备的知识。,5.2 程序设计的基本过程,
18、程序设计的基本方法1)结构化程序设计技术(1)结构化程序设计方法的产生结构化程序设计的概念不是孤立发展而形成的。实际上,二十世纪六十年代,随着高级语言的不断产生和广泛的应用,越来越多的、大而复杂的应用问题需要通过计算机来解决。随之而来出现了一系列严重的问题,如:程序的质量无法保证、程序的修改难以进行、程序的开发周期和成本估计不准等,造成了许多项目的失败,这就是所谓的软件危机。因此,许多科学家为了解决这些问题,首先在程序设计方面进行了广泛、深入的研究和讨论,从而建立了结构化程序设计的基本概念、理论和方法。,5.2 程序设计的基本过程,程序设计的基本方法结构定理1966年,Bohra 和Jacop
19、ini证明了仅用三种基本结构就能实现任何算法。这是:顺序、选择和循环,如图所示。其中,S1、S2又可能或是三种基本结构之一。通过把它们合理地组合可以形成任何算法。goto之争单入口和单出口自顶向下,逐步求精其基本思想是:从欲求解的原问题出发,运用科学抽象的方法,把它分解成若干相对独立的小问题,依次细化,直至各个小问题获得解决为止。,5.2 程序设计的基本过程,5.2 程序设计的基本过程,程序设计的基本方法(2)结构化程序设计方法的基本思想结构化程序设计方法的基本思想之一就是抽象与分解。抽象实际上是人类认识世界的基本法则之一。人们在实践中认识到,在现实世界中一定事物、状态、或过程之间总是存在着某
20、些相似的方面,把这些相似的方面集中和概括起来,暂时忽略它们之间的差异,或者说抽出事物的本质特性而暂时不考虑它们的细节,这就是抽象。显然,这种抽象包含了系统的观点和分层的观点,即可以把程序设计所面临的问题看成是一个系统,这个系统可用高级的抽象概念来理解和构造,这些高级的抽象概念又可用较低级的抽象概念来理解和构造,如此进行下去,直到最低层次的模块可以表示成某种程序设计语言的语句为止。,5.2 程序设计的基本过程,程序设计的基本方法2)面向对象程序设计技术面向对象技术是程序设计技术的一次革命,在软件开发史上具有里程碑的意义。(1)面向对象的基本概念:对象和类所谓对象是现实世界中的实体,是某个抽象数据
21、类型的值。利用对象和类可以达到信息隐蔽和数据抽象的目的。对象包含有下面几个含义:每个对象有可以唯一地标识它的名字;每个对象都占有自己的空间,每个对象都与一组施加在这些数据结构上的操作相联系一个对象的状态只能由该对象的操作来改变。,5.2 程序设计的基本过程,程序设计的基本方法所谓类是定义抽象数据类型的一种机制。类是对一组具有相同数据结构和方法的对象的特征抽象,是一个“对象工厂”,是一个创建对象的模板,每一个由类而生成的新对象都有同样的数据结构和方法。在这种意义下,每个对象都是某一个类的实例。例如,“小轿车”是一个类,某一辆“小轿车”是这个类的一个实例,谁也没有见过抽象的“小轿车”,只见过具体的
22、某一种品牌型号的“小轿车”。另一方面,类也可以是一个“对象仓库”,是存在于系统中的所有同一类对象的整体表示,在这种意义上讲,类也是一个对象。,5.2 程序设计的基本过程,程序设计的基本方法方法和消息对象一旦被定义,就与一组方法联系起来。方法是在类中定义的,同一类的所有对象都具有同样的方法,方法是作用在对象上的,一个对象的方法是通过消息来激活的。消息可以激活对象上的方法,对对象的实例变量进行计算、存取,也可以向另外的对象发送消息。继承性继承性是从已定义的类定义新类的一种手段。通过继承性,可以对一个已经定义的类进行细化,加入新的属性和方法,而不用重复说明已定义的属性和方法,甚至不必了解已定义类的表
23、示和实现细节。,5.2 程序设计的基本过程,程序设计的基本方法(2)面向对象的程序设计方法的思想:所谓“程序设计”即是用计算机模拟现实世界的活动。从传统的角度看,程序是“活动”的集合;程序=过程+调用称这种程序设计方法为面向过程的程序设计。现实世界是由许许多多的实体或对象构成的。这些对象彼此相关并能相互通讯,对象的活动构成了现实世界的活动。从面向对象的角度看,程序是对象的集合;对象之间的相互作用构成了一个软件系统。对象参与的交互动作称为事件,在事件中消息在对象之间发送,接收消息的对象调用相应的方法进行响应。如图所示。,5.2 程序设计的基本过程,程序设计的基本方法(2)面向对象的程序设计方法的
24、思想:面向对象的程序设计最突出的特点是建立在对象和类的基础上,把问题所对应的现实世界中的事物抽象成对象或类,并建立对象之间的关系。每个对象或类不仅包含描述其特征的属性或数据结构,而且还包含对这些数据结构的操作(也称为方法或服务),如图所示。,5.2 程序设计的基本过程,程序设计的基本方法(2)面向对象的程序设计方法的思想:当我们对对象中的每一个操作进行描述时,可以把一个操作理解为一个“过程”,这个“过程”需要完成一定的任务,这里的“过程”与结构化程序设计中的过程本质上是两个不同的概念。因为结构化程序设计中的过程在对数据的操作中,数据是被动的;而这里的对象是主动的不是被动的,对象是中心,是被封装
25、了的抽象体,对象中的“过程”即操作只能通过接收消息时进行启动和执行并对对象中的属性进行改变。面向对象的程序设计方法可以简单地表示为:面向对象=对象+类+继承+消息通信,5.2 程序设计的基本过程,程序设计的基本方法3)组件(COM)程序设计组件化程序设计方法继承并发展了面向对象的程序设计方法。它把对象技术应用于系统设计,对面向对象的程序设计的实现过程作了进一步的抽象。我们可以把组件化程序设计方法用作构造系统的体系结构层次的方法,并且可以使用面向对象的方法很方便地实现组件。前面的设计思想只能在源程序级别重用,不能在二进制级别(可执行代码级)重用,而组件程序设计正是从这个层面解决问题的。,5.2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学计算机基础 大学计算机 基础 课程 介绍 软件 开发 程序设计
链接地址:https://www.31ppt.com/p-6442899.html