- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第1章概述.ppt
第1章概述 1.1程序语言和语言处理程序 程序语言的分类 低级语言-----面向机器语言。最初为机器语言,后来为改进可读性和提高程序设计效率,人们考虑用符号来表示机器指令中的操作码和操作数,这就是汇编语言。 高级语言------由于低级语言未能摆脱机器指令的束缚,影响人们的抽象思维和交流,所以人们建立了一些和自然语言相近的高级语言,以提高程序设计的效率,如FORREAN、COBOL、Pascal、C等等。 解释程序的概念 解释程序是一种语言处理程序,它直接执行源程序(用源语言书写的程序)或源程序的内部形式。 解释程序不产生目标程序。 解释程序效率很低 解释程序的执行 程序的解释执行 如:BASIC、Prolog,问题:效率低下 编译程序的概念 编译程序(又称为翻译程序)是另一种语言处理程序。翻译程序接受所输入的用程序语言书写的程序,然后把它翻译成用另一种语言书写的与源程序等价的程序(称为目标程序)。 编译程序的执行效率高。 编译程序的执行 程序的编译执行 编译程序与解释程序的差别 编译程序先把全部源程序翻译为目标程序,然后再执行,而且目标程序可以反复执行。 解释程序对源程序逐句地翻译执行,目标代码只执行一次,若需重新执行,则必须重新解释源程序。 1.2解释程序概况 一般的说,建立在翻译基础上的系统在执行速度上都优于建立在解释执行基础上的系统。 编译程序的缺点是复杂,开发和维护费用较大。 解释系统比较简单,可移植性好,适合于交互方式执行的程序,其缺点是执行速度慢。 解释系统的组成 第一部分包括通常的词法分析程序以及句法和语义分析程序,它的作用是把源程序翻译成中间代码,中间代码的设计常常采用逆波兰表示形式。 第二部分是解释部分。用来对第一部分的中间代码进行解释。 1.3编译程序概况 编译程序的职能是将用某程序设计语言书写的程序(源程序)翻译成与之等价的机器语言或汇编语言程序(目标程序),等价是指目标程序能完成源程序预定的任务。 一般可把编译程序分成下面几个部分 词法分析、句法和语义分析、代码优化、 代码生成、符号表的管理。 编译程序的4个阶段 1.词法分析 词法分析程序是编译程序的第一部分,它的输入就是源程序中由字符所组成的一串符号。 词法分析的功能如下: 识别出源程序中意义独立的最小词法单位—单词。 删除无用的空格、回车和其他与输入介质有关的符号 删除程序员为了提高程序可读性所加的注释 如果发现错误则报告出错 词法分析举例 例: main( ) { printf(“hello”); } 结果 IDN main ‘(’ ‘)’ ‘{’ IDN printf ‘(’ STR hello ‘)’ ‘;’ ‘}’ 词法分析的实现 词法分析由词法分析器完成(Lexical Analyzer),词法分析器又叫做扫描器(Scanner) 词法分析器从左(前)到右(后)扫描源程序——一个字符串,并将该字符串转换成单词(符号—Token)串;同时要:查词法错误,进行标识符登记——符号表管理。 输入:字符串 输出:(种别码,属性值)——序对 属性值——token的机内表示 2.语法分析 语法分析程序接受词法分析程序的输出(即单词串),然后检查其是否符合该语言的文法规则。 按需要输出相应的内部代码(又称为中间代码)。 语法分析的实现 语法分析由语法分析器(Syntax Analyzer)完成,语法分析器又叫Parser。 功能:Parser实现“组词成句”,构造分析树,指出语法错误,指导翻译 输入:Token序列 输出:语法成分 2. 语法分析 语句 printf(“hello”); 表达式 ; 函数调用 标识符 ( 表达式 ) 常数 字符串 3. 语义分析 功能:分析由语法分析器给出的语法单位的语义 获取标识符的属性:类型、作用域等 语义检查:运算的合法性、取值范围等 子程序的静态绑定:代码的相对地址 变量的静态绑定:数据的相对地址 4. 生成中间代码 中间代码(intermediate Code) : 波兰表示(Polish Notation)、逆(Anti-)波兰表示、三元式、三元组、四元组(三地址码)、语法树 例:id1+id2*id3 4. 生成中间代码 中间代码的特点 简单规范 机器无关 易于优化与转换 例(三地址代码) x := s (赋值) param x (参数) call f (函数调用) 注释 s 是 hello 的地址 f 是函数 printf 的地址 语义分析与中间代码生成 按照Parser所识别出的语法成分,根据语言的语义产生相应的中间代码或者目标代码(Object Code) 目标代码:汇编指令、机器指令
您可能关注的文档
最近下载
- 四年级上道德与法治《学会识别广告》教学设计.pdf VIP
- 2024融合大语言模型DeepSeek技术新人教版语文七年级上册《第四单元》大单元整体教学设计[2022课标].pdf
- 监控系统项目完整技术标书.docx VIP
- 临床合理用药解读-质子泵抑制剂的处方和医嘱审核要点解读(PPT课件).pptx VIP
- 山东省化工装置安全试车工作规范 DB37_T 1854—2020 山东.pdf VIP
- 安徽—夏凯月—课件—直线的倾斜角与斜率.pptx VIP
- 房屋租赁合同,房屋租赁合同,房屋租赁合同.docx VIP
- 安徽—夏凯月—设计—直线的倾斜角与斜率.docx VIP
- 业务学习-子宫脱垂.pptx VIP
- 海尔风冷模块样册.pdf
文档评论(0)