- 1、本文档共183页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件技术基础 自动化系:黄巧莉 Email:qlhuang@ 第二章 程序设计语言 程序设计语言是人—机交换信息的媒体,也是人—人交换信息的工具 2.1 高级程序设计语言概述 2.2 高级程序设计语言实现计算的方式 2.3 高级程序设计语言的基本特征 2.4 面向对象程序语言的基本特征 2.5 网络计算时代的编程语言 2.1 高级程序设计语言概述 最初的语言是机器语言,例:AX=AX+46 用容易记忆的英文单词代替约定的指令,易读写程序, 导致了汇编语言的诞生 使用汇编语言编程需要: 直接安排存储,规定寄存器、运算器动作次序 了解数据表示的约定(定点、浮点、双精度) 不同的计算机在指令长度、寻址方式、寄存器数目、指令表示等都时不同,使得汇编程序不仅不可移植而且读起来也很费劲 … … 导致了高级语言的出现 2.2 高级程序设计语言实现计算的方式 高级语言程序必须经过翻译变成机器语言程序 翻译有两种做法:编译和解释,相应的翻译工具分别叫做编译器和解释器 2.2.1 编译器工作原理 首先是识别符号串:关键字、字面量、标识符、运算符、注释行、特殊符号等六类符号,这个过程就是词法分析(Lexical Analysis) 第二步作语法分析(Syntax Analysis)一个语句就作为一串记号流由语法分析器处理。按照语言的文法检查每个语法分析树 第三步作语义分析(Semantic Analysis)对各句子的语法树作检查:运算符两边类型是否相兼容;该作哪些类型转换;控制转移到不该去的地方;是否有重名等等。若有错转出错处理,否则生成执行代码 第四步是中间代码生成。中间代码是向目标码过渡的一种编码,形式尽可能和机器的汇编语言相似,但不涉及具体机器的操作码和地址码。好处是可在中间码上作优化 第五步是优化。对中间码程序作局部和全局优化,使运行更快,占用空间最小 第六步是代码生成。生成目标机器的目标码(或汇编)程序 高级语言源程序经编译后,得到的目标模块还需进行连接。连接程序(即Linker)找出需要连接的外部模块并到模块库中找出被调用的模块,调入内存并连接到目标模块上,形成可执行程序。 2.2.2 高级语言程序的解释执行 解释执行需要有一个解释器(lnterpretor ),它先作词法分析,建立内部符号表; 再作语法和语义分析,即以中间码建立语法树,并作类型检查。 完成检查后把每一语句压入执行堆栈,压入后立即解释执行。 操作系统的命令、BASIC、VB、Prolog、LISP、Java、Java Script、Post Script都是解释执行的,各种应用软件提供的界面语言(一般都很小)多半是解释执行的。 解释器不大,工作空间也不大、能根据程序执行情况决定下一步做什么(人工智能经常是这样的)是它的优点。 不过,解释执行难于优化、效率较低,是这类语言的致命缺点。 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是开平方函数。表达式是常量、变量、函数调用或者由它们和运算符组成的序列。=是赋值号,它将右端表达式算出的结果赋给左端的变量。 2.3.2 程序的控制结构 1.条件语句 有了条件判断if(E) then TB else FB endif,打破了自上至下逐句执行的模式 当表达式E为‘真’时,执行TB块那一组语句,当表达式E为‘假’时跳过TB块执行FB块那一组语句。 2.迭代语句 例如,求自然数1到10000之和的程序 迭代结构的一般式有几种: (1)结构化程序控制 (2)其它控制结构 方便使用的变体:Case语句是嵌套if的简化 其它控制 Call-return:程序单元间的转移,执行后返回原地。 Exception-raise:程序出了异常情况,raise(引发)后,正常执行转到异常处理程序段,并不再返回。在C++中,使用的是try–throw结构,在VB中是ON ERROR GOTO 语句。 Abort(STOP):强行停止执行。 Exit:转到本程序块末端。 Delay XX:延迟XX时间后继续执行。 2.3.2 数据类型 计算机中计算对象(不管是常量、变量)都是有类型的,类型不同内部表示不同,就是象12+32.7这种简单的计算也是不允许的,要先做类型转换才能计算 1.常用的基本类型 2.数组 String Names[15] 声明16个元素数组,每个元素都是字符串类型 Double Matrix[9,9]
文档评论(0)