第二章程序设计语言.ppt
《第二章程序设计语言.ppt》由会员分享,可在线阅读,更多相关《第二章程序设计语言.ppt(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一章第一章 程序设计语言程序设计语言软件技术基础软件技术基础北航可靠性工程研究所 2005,软件技术基础 第二章第二章 程序设计语言程序设计语言程序设计语言是也是人人交换信息的工具程序设计语言是人机交换信息的媒体北航可靠性工程研究所 2005,软件技术基础2.1 高级程序设计语言概述最初的语言是机器语言,例:AXAX46北航可靠性工程研究所 2005,软件技术基础用容易记忆的英文单词代替约定的指令,易读写程序,导致了汇编语言的诞生导致了汇编语言的诞生使用汇编语言编程需要:直接安排存储,规定寄存器、运算器动作次序了解数据表示的约定(定点、浮点、双精度)不同的计算机在指令长度、寻址方式、寄存器数
2、目、指令表示等都不同,使得汇编程序不仅不可移植而且读起来也很费劲 导致了高级语言的出现导致了高级语言的出现 汇编语言和高级语言的诞生汇编语言和高级语言的诞生DATA SEGMENT XX DB X YY DB?DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV AL,XX CMP AL,0 JGE BLGR MOV AL,0FFH MOV YY,AL HLTBLGR:JE EQUT MOV AL,01H MOV YY,AL HLTEQUT:MOVE YY,AL HLTCODE ENDS END
3、START例汇编:高级语言:如果用VB编写,本程序是:Dim x,y As Integer if x 0 then Y=1 else if x=0 then Y=0 else Y=-1 endif endif北航可靠性工程研究所 2005,软件技术基础2.2 高级程序设计语言实现计算的方式高级语言程序必须经过翻译变成机器语言程序翻译有两种做法:编译和解释,相应的翻译工具分别叫做编译器和解释器2.2.1 编译器工作原理首先是识别符号串:关键字、字面量、标识符、运算符、注释行、特殊符号等六类符号,这个过程就是词法分析(Lexical Analysis)第二步作语法分析(Syntax Analysi
4、s)一个语句就作为一串记号流由语法分析器处理。按照语言的文法检查每个语法分析树第三步作语义分析(Semantic Analysis)对各句子的语法树作检查:运算符两边类型是否相兼容;该作哪些类型转换;控制转移到不该去的地方;是否有重名等等。若有错转出错处理,否则生成执行代码第四步是中间代码生成。中间代码是向目标码过渡的一种编码,形式尽可能和机器的汇编语言相似,但不涉及具体机器的操作码和地址码。好处是可在中间码上作优化第五步是优化。对中间码程序作局部和全局优化,使运行更快,占用空间最小第六步是代码生成。生成目标机器的目标码(或汇编)程序源程序.c目标程序.obj可执行程序.exe结果编译连接执行
5、北航可靠性工程研究所 2005,软件技术基础2.2.2 高级语言程序的解释执行解释执行需要有一个解释器(lnterpretor),它先作词法分析,建立内部符号表;再作语法和语义分析,即以中间码建立语法树,并作类型检查。完成检查后把每一语句压入执行堆栈,压入后立即解释执行北航可靠性工程研究所 2005,软件技术基础操作系统的命令、BASIC、VB、Prolog、LISP、Java、Java Script、Post Script都是解释执行的,各种应用软件提供的界面语言(一般都很小)多半是解释执行的。解释器不大,工作空间也不大、能根据程序执行情况决定下一步做什么(人工智能经常是这样的)是它的优点,
6、不过,解释执行难于优化、效率较低,这是这类语言的致命缺点北航可靠性工程研究所 2005,软件技术基础2.3 高级程序设计语言基本特征2.3.1 变量、表达式、赋值计算的数据对象特别是计算结果的对象在编程时是不存在的。我们只能用变量变量表示它例:已知三角形三边长度求面积:s:=0.5*(a+b+c)area:=sqrt(s*(s-a)*(s-b)*(s-c)其中a,b,c,s,area是变变量量,0.5是常常量量(也是字面量),“+”和“*”是运算符运算符,sqrt是开平方函数函数表表达达式式是常量、变量、函数调用或者由它们和运算符组成的序列:=:=是是赋赋值值号号它将右端表达式算出的结果赋给左
7、端的变量北航可靠性工程研究所 2005,软件技术基础2.3.2 程序的控制结构-条件语句有了条件判断if(E)then TB else FB end if,打破了自上至下逐句执行的模式当表达式E E为真时,执行TBTB块那一组语句 为假时跳过TBTB块执行FBFB块那一组语句早期的if 语句借助goto语句改变执行顺序但这种无条件goto不能保证结构的完整性,即另外某处也可以goto到这个条件分支中北航可靠性工程研究所 2005,软件技术基础2迭代语句例如,求自然数1到10000之和的程序北航可靠性工程研究所 2005,软件技术基础迭代结构的一般式有几种:while(E)do S enddo
8、表达式E为真执行S,直至E为假 (a)当循环Do S Until(E)先执行S再查看E,E为真不重复 (b)直到循环for(i=E0;E1;E2)do S enddo i得 初 值 E0,判 断iE2,执行S后i增量E1,判断若iE2,出for-do (c)计数循环北航可靠性工程研究所 2005,软件技术基础(1 1)结构化程序控制)结构化程序控制北航可靠性工程研究所 2005,软件技术基础北航可靠性工程研究所 2005,软件技术基础(2)其它控制结构)其它控制结构方便使用的变体:Case语句是嵌套if的简化Do-until,for-do均为while-do变体北航可靠性工程研究所 2005,
9、软件技术基础其它控制其它控制Call-return:程序单元间的转移,执行后返回原地。Exception-raise:程序出了异常情况,raise(引发)后,正常执行转到异常处理程序段,并不再返回。在C+中,使用的是try throw结构,在VB中是ON ERROR GOTO 语句。Abort(STOP):强行停止执行。Exit:转到本程序块末端。Delay XX:延迟XX时间后继续执行。北航可靠性工程研究所 2005,软件技术基础 2.3.2 数据类型计算机中计算对象(不管是常量、变量)都是有类型的,类型不同内部表示不同,就是象12+32.7这种简单的计算也是不允许的,要先做类型转换才能计算
10、1.常用的基本类型北航可靠性工程研究所 2005,软件技术基础强类型语言(所谓强类型,就是编译时所有变量类型均确定,类型转换必须显式地给出)无类型语言则无需变量的类型声明,给它什么值它就是什么类型。2.2.数组数组Dim Names(15)As String声明16个元素数组,每个元素都是字符串类型Dim Matrix(9,9)As Double是10*10=100元素的方阵,元素为双精度浮点数不同类型的一维数组能否组成一多维数组?一般语言不可以,VB利用Variant可以把它们联接起来并把它叫做数组的数组北航可靠性工程研究所 2005,软件技术基础3.3.记录记录相同或不同类型数据组成的结构
11、叫记录。记录型记录了对象的属性信息,记录的各个组成部分,称为记录域,各个域的数据类型可以不相同。用VB声明的一个例子:Type Person RecordName As StringAge As IntegerSex As StringTelnumber As StringLable As IntegerEndtype北航可靠性工程研究所 2005,软件技术基础在VB中,可以这样声明数组型变量:Dim Student1 As Person Record访问记录元素用点表示法:Student1.Name=“ChangShan”Student1.Age=20Student1.Sex=“Male”S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二章 程序设计语言 第二
限制150内