02-程序设计语言基础

02-程序设计语言基础

ID:44201216

大小:503.00 KB

页数:38页

时间:2019-10-19

02-程序设计语言基础_第1页
02-程序设计语言基础_第2页
02-程序设计语言基础_第3页
02-程序设计语言基础_第4页
02-程序设计语言基础_第5页
资源描述:

《02-程序设计语言基础》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第二章程序设计语言程序设计语言是人—机交换信息的媒体,也是人—人交换信息的工具2.1高级程序设计语言概述最初的语言是机器语言,例:AX=AX+46用容易记忆的英文单词代替约定的指令,易读写程序,导致了汇编语言的诞生使用汇编语言编程需要:直接安排存储,规定寄存器、运算器动作次序了解数据表示的约定(定点、浮点、双精度)不同的计算机在指令长度、寻址方式、寄存器数目、指令表示等都时不同,使得汇编程序不仅不可移植而且读起来也很费劲……>导致了高级语言的出现例汇编:2.2高级程序设计语言实现计算的方式高级语言程序必须经过翻译变成机器语言程序翻译有两种做

2、法:编译和解释,相应的翻译工具分别叫做编译器和解释器2.2.1编译器工作原理首先是识别符号串:关键字、字面量、标识符、运算符、注释行、特殊符号等六类符号,这个过程就是词法分析(LexicalAnalysis)第二步作语法分析(SyntaxAnalysis)一个语句就作为一串记号流由语法分析器处理。按照语言的文法检查每个语法分析树第三步作语义分析(SemanticAnalysis)对各句子的语法树作检查:运算符两边类型是否相兼容;该作哪些类型转换;控制转移到不该去的地方;是否有重名等等。若有错转出错处理,否则生成执行代码第四步是中间代码生成。

3、中间代码是向目标码过渡的一种编码,形式尽可能和机器的汇编语言相似,但不涉及具体机器的操作码和地址码。好处是可在中间码上作优化第五步是优化。对中间码程序作局部和全局优化,使运行更快,占用空间最小第六步是代码生成。生成目标机器的目标码(或汇编)程序高级语言源程序经编译后,得到的目标模块还需进行连接。连接程序(即Linker)找出需要连接的外部模块并到模块库中找出被调用的模块,调入内存并连接到目标模块上,形成可执行程序。2.2.2高级语言程序的解释执行解释执行需要有一个解释器(lnterpretor),它先作词法分析,建立内部符号表;再作语法和语

4、义分析,即以中间码建立语法树,并作类型检查。完成检查后把每一语句压入执行堆栈,压入后立即解释执行操作系统的命令、BASIC、VB、Prolog、LISP、Java、JavaScript、PostScript都是解释执行的,各种应用软件提供的界面语言(一般都很小)多半是解释执行的。解释器不大,工作空间也不大、能根据程序执行情况决定下一步做什么(人工智能经常是这样的)是它的优点,不过,解释执行难于优化、效率较低,这是这类语言的致命缺点2.3高级程序设计语言基本特征2.3.1变量、表达式、赋值计算的数据对象特别是计算结果的对象在编程时是不存在的。

5、我们只能用变量表示它例:已知三角形三边长度求面积:s:=0.5*(a+b+c)area:=sqrt(s*(s-a)*(s-b)*(s-c))其中a,b,c,s,area是变量,0.5是常量(也是字面量),“+”和“*”是运算符,sqrt是开平方函数表达式是常量、变量、函数调用或者由它们和运算符组成的序列:=是赋值号它将右端表达式算出的结果赋给左端的变量2.3.2程序的控制结构1.条件语句有了条件判断if(E)thenTBelseFBendif,打破了自上至下逐句执行的模式当表达式E为‘真’时,执行TB块那一组语句为‘假’时跳过TB块执行FB

6、块那一组语句早期的if语句借助goto语句改变执行顺序但这种无条件goto不能保证结构的完整性,即另外某处也可以goto到这个条件分支中2.迭代语句例如,求自然数1到10000之和的程序迭代结构的一般式有几种:while(E)doSenddo表达式E为‘真’执行S,直至E为‘假’(a)当循环doSUntil(E)先执行S再查看E,E为‘真’不重复(b)直到循环for(i=E0;E1;E2)doSenddoi得初值E0,判断i≤E2,执行S后i增量E1,判断若i>E2,出for-do(c)计数循环(1)结构化程序控制(2)其它控制结构方便使用

7、的变体:Case语句是嵌套if的简化Do-until,for-do均为while-do变体其它控制Call-return:程序单元间的转移,执行后返回原地。Exception-raise:程序出了异常情况,raise(引发)后,正常执行转到异常处理程序段,并不再返回。在C++中,使用的是try–throw结构,在VB中是ONERRORGOTO语句。Abort(STOP):强行停止执行。Exit:转到本程序块末端。DelayXX:延迟XX时间后继续执行。2.3.2数据类型计算机中计算对象(不管是常量、变量)都是有类型的,类型不同内部表示不同,

8、就是象12+32.7这种简单的计算也是不允许的,要先做类型转换才能计算1.常用的基本类型强类型语言(所谓强类型,就是编译时所有变量类型均确定,类型转换必须显式地给出)无类型语言则

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。