- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
词法分析语法分析语义分析与中间代码产生
3. 出错处理 不仅能对书写正确的源程序进行编译,而且应能对出现的错误进行处理,若源程序有错,应设法发现错误,并把有关信息报告给用户。专门由一组程序完成,出错处理程序。 好:最大限度发现各种错误,准确指出其性质及地点,并将其影响限制在尽可能小的范围,使源程序其它部分能继续被编译,以进一步发现其它可能的错误。 语法错:不符合词法规则(“非法字符”)、或不符合语法规则(“括号不匹配”、“缺少;”等)。 语义错:不符合语义规则,语义分析时检测出来(静态语义),有时要到运行时才能检测出来(动态语义)。如:说明错误、作用域错误、类型不一致等。 自动纠错 ? 代价非常高。 绝大多数错误可在编译的前三阶段检测出来: * 责任教师 孙继荣 高级语言及其语法描述 引论 词法分析 语法分析 语法分析—自下而上 属性文法和语法制导翻译 1 2 3 4 5 6 语义分析与中间代码产生 符号表 运行时存储空间组织 优化 目标代码生成 7 8 9 10 11 §1.1 什么叫编译程序 使用过现代计算机的人都知道,多数用户是应用高级语言来实现他们所需要的计算的。现代计算机系统一般都含有不止一个高级语言编译程序,对有些高级语言甚至配置了几个性能不同的编译程序,供用户按不同需要进行选择。高级语言编译程序是计算机系统软件最重要的组成部分之一,也是用户最直接关心的工具之一。 那么,什么叫编译程序? 在计算机上执行一个高级语言程序一般要分两步: 高级语言程序 机器语言程序 计算结果 ? 翻 译 ? 运 行 源程序 Fortran, Pascal, C…高级 翻译程序(解释、编译) 目标程序 汇编、机器低级 编译程序 汇编语言 机器语言 汇编程序 1. 编译程序 (compiler) 2. 分类(按用途和侧重性) 诊断编译程序(Diagnostic Compiler) 开发、调试 优化编译程序(Optimizing Compiler) 提高代码效率 交叉编译程序(Crossing Compiler) 产生不同于宿主机的机器代码 可变目标编译程序(Retargetable Compiler) 不需重写与机器无关的部分即可改变目标机 当时,人们普遍认为设计和实现编译程序是一件十分困难、令人生畏的事情, 经过四十年的努力,编译理论和技术得到迅速发展,现在已形成了一套比较成熟的、系统化的理论与方法,并且开发出了一些好的编译程序的实现语言、环境和工具。在此基础上设计并实现一个编译程序不再是高不可攀的事情。 3. 世界上第一个编译程序 Fortran,20世纪50年代中期研制成功。 4. 本课程主要介绍设计和构造编译程序的基本原理和方法,是一门专业性、逻辑性非常强的课程,要理论与实践相结合。在理解的基础上进行掌握,并自觉将这些知识应用于软件开发的实践之中。 上好每一次习题讲解课并做好笔记,认真完成每一次的作业,多做习题。 §1.2 编译程序概述 自然语言翻译过程: 编译程序工作过程: 识别单词 分析句法 初步翻译 译文润饰 正式翻译 词法分析 语法分析 语义分析与中间代码产生 代码优化 目标代码生成 1. 词法分析 任务:输入源程序,对字符串扫描分解、识别出单词(或单词符号、或简称符号),如基本字(begin、end、for、while等)、标识符、常数、算符和界符(标点符号、左右括号等)。 例:for I : = 1 to 100 do 基本字 标识符 赋值号 整常数 基本字 单词符号是语言的基本组成部分,是人们理解和编写程序的基本要素。识别和理解这些要素无疑也是翻译的基础。如同将英文翻译成中文一样,如果对英语单词不理解,则谈不上进行正确的翻译。 依循原则:语言的词法规则 (或构词规则) 描述工具:正规式和有限自动机 2. 语法分析 任务:在词法分析的基础上,根据语言的语法规则,把单词符号串分解成各类语法单元(语法范畴),如:短语、子句、句子(语句)、程序段、程序等。通过语法分析,确定整个输入串是否构成语法上正确的“程序”。 依循原则:语言的语法规则 描述方法:上下文无关文法 词法分析 ? 线性分析 语法分析 ? 层次结构分析 例:z : = x + 0.618 ? y 语法分析要识别: (1) x+0.618?y为算术表达式; (2)并且整个字符串属于赋值语句范畴。 3. 语义分析与中间代码产生 任务:对语法分析所识别的各类语法范畴,分析其含义,并进行初步翻译(产生中间代码)。 ? 静态语义检查:变量是否定义,类型是否正确等。 ? 若语义正确,则进行中间代码的翻译。 通常包括两方面工作: 依循原则:语言的语义规则 描述
您可能关注的文档
- 白内障视网膜疾病青光眼外伤-同济大学数学系.ppt
- 电路的基本概念和定律电子教案.doc
- 百分数的意义和读写教学设计-合肥十里庙小学.doc
- 皮支胸腹壁的皮肤.ppt
- 相关江苏卫生监督所.doc
- 礼貌孩子人人爱一范畴德智体群美性情自对象小一教学目标.doc
- 社会价值倾向积极人格对社会资本之影响顾客正义知觉的角色.doc
- 科技哲学前沿问题系列研讨会班第一次研讨会综述.doc
- 科技革命的概念武汉大学国际经济与贸易.ppt
- 第2节孟德尔的豌豆杂交试验-广州第八十中学.doc
- 多点监督与特征融合校准:目标检测算法的创新与突破.docx
- 南宁市门诊HIV_AIDS患者抑郁状况剖析与影响因素探究.docx
- 医疗过失犯罪中客观归责理论的精准适用与深度解析.docx
- 南宁市低碳经济发展研究.docx
- 清解瘀毒胶囊对脑出血大鼠血红蛋白毒性作用及机制探究.docx
- 内蒙古赤峰市元宝山区农村小学教师培训:现状、问题与突破路径.docx
- 泉州开发区国有资产投资经营有限公司发展战略研究:基于区域经济与市场环境的分析.docx
- 能源利用效率与经济增长方式的深度耦合及中国战略抉择.docx
- 分布式信号波达方向 - 时延联合估计算法的深度剖析与创新探索.docx
- 新媒体环境下大学校园精神传播的创新变革.docx
文档评论(0)