[计算机软件技术基础2-1程序设计语言.ppt

[计算机软件技术基础2-1程序设计语言.ppt

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[计算机软件技术基础2-1程序设计语言

第二章 程序设计语言 2.1 高级程序设计语言概述 程序的表达手段是程序设计语言。程序设计语言是人-机交换信息的媒体;是表达软件(程序)的工具;是人-人交换信息的工具。软件的开发和使用,协作开发、使用修改都要读程序,程序设计语言必须规范化和标准化。 DATA SEGMENT XX DB X YY DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,XX CMP AL,0 JGE BIGR MOV AL,0FFH MOV YY,AL HLT JE EQUT BIGR: MOV AL,01H MOV YY,AL HLT EQUT:MOV YY,AL HLT CODE ENDS ENDSTART main ( ) { int x,y; cin x; if(x0) y=1 else if(x=0) y=0 else y=-1 cout x,y; } 2.2 高级程序设计语言实现计算的方式 机器只知道根据机器语言指令来执行程序,高级语言程序必须通过翻译变成机器语言程序,这个工作一般由翻译程序自动完成的。把一种语言翻译成另一种语言的程序叫做翻译器(如C++翻成C)。把高级语言程序翻译成机器语言程序有两种做法:编译和解释,相应的翻译程序分别叫做编译器和解释器。 2.2.1 编译器工作原理 第一步 词法分析。一个高级语言程序是编译(程序)器的输入。编译器逐行扫描程序,首先是识别符号串:关键字、字面量、标识符(变量名、数据名)、运算符、注释行、特殊符号(续行、语句结束、数组等)这六类符号,分别归类等待处理。这个过程就是词法分析(Lexical Analysis)。 第二步作语法分析(Syntax Analysis)。这时一个语句就作为一串记号(token)流由语法分析器处理。按照语言的文法检查每个语法分析树,判定是否为合乎语法的句子。如果是合法句子就以内部格式把这个语法树保存起来,否则报错。这样直至检查完整个程序。 第三步做语义分析(Semantic Analysis )。对各句子的语法树做检查:运算符两边类型是否相兼容;作哪些类型转换(例如实数向整数赋值要取整);是否控制转移到不该去的地方;是否有重名或者使语义含糊的记号等。如果有错转到出错处理,否则生成中间代码。 第四步 中间代码生成.中间代码是向目标码即机器语言的代码过渡的一种编码,其形式尽可能和机器的汇编语言相似,以便下一步的代码生成。中间码不涉及具体机器的操作码和地址码。采用中间码的好处是可以在中间码上作优化。 第五步 优化。对中间码程序做局部优化和全局优化,使运行更快,占用空间最小。局部优化是合并冗余操作、简化计算,例如x : =0;可用一条“清零”指令替换.全局优化包括改进循环、减少调用次数和快速地址算法等。 第六步 代码生成。由代码生成器生成目标机器的目标码(或汇编)程序,要作数据分段、选定寄存器等工作,然后生成机器可执行的代码。 第七步 连接加载:高级语言源程序经编译后得到目标码程序,但它还不能立即装入机器执行,一般情况下它是不够完整的。如程序中用到abs ( ) , sin ( )这些函数,可直接调用,不需求绝对值、求正弦的程序,已作为目标码存放在机器中。编译后得到的目标模块还需进行连接.连接程序(即Linker)找出需要连接的外部模块并到模块库中找出被调用的模块,调入内存并连接到目标模块上,形成可执行程序。把执行程序加载(Loading)到内存中合适的位置,即可执行。 2.2.2高级语言程序的解释执行 对高级语言源程序采取解释执行的方式.解释执行需要有一个解释器(Interpreter ) ,它将源代码逐句读入。先作词法分析,建立内部符号表;再作语法和语义分析,即以中间码建立语法树,并作类型检查。完成检查后把每一语句压入执行堆栈,压入后立即解释执行。 操作系统的命令、BASIC 、VB 、Prolog 、LISP 、Java 、Java Script 、Post script 都是解释执行的,各种应用软件提供的界面语言(一般都很小)多半是解释执行的。解释器不大,工作空间也不大,能根据程序执行情况决定下一步做什么是它的优点,解释执行难于优化、效率较低,是

文档评论(0)

wangz118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档