- 1、本文档共49页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基本理念与准备知识-Read
课程简介 课程内容 学习的意义 课程要求 学习要求 学习目标 学习向导 参考资料 参考资料 第1章 引论 本章主要内容: 什么是编译程序 编译过程和编译程序的结构 为什么要学习编译程序 §1.1 什么叫编译程序 1.翻译程序(Translator) 2. 汇编程序(Assembler) 3. 编译程序(Compiler) 4. 解释程序(Interpreter) §1.2 编译过程概述 第一阶段,词法分析 第二阶段,语法分析 第三阶段,语义分析与中间代码产生 第四阶段,优化 第五阶段,目标代码生成 §1.3 编译程序的结构 1.3.1 编译程序总框 1.3.2 表格与表格管理 1.3.3 出错处理 1.3.4 遍 1.3.5 编译前端与后端 §1.4 编译程序与程序设计环境 §1.5 编译程序的生成 习题: 什么是汇编程序? 什么是编译程序? 什么是解释程序? 什么是翻译程序? 编译的逻辑过程是什么? 编译程序由那些逻辑部分组成? 什么是编译遍? 什么是编译前端? 什么是编译后端? 编译方式与解释方式的根本区别是什么? 词法分析器,又称扫描器,输入源程序,进行词法分析,输出单词符号。 语法分析器,简称分析器,对单词符号串进行语法分析(根据语法规则进行推导或归约),识别出各类语法单位,最终判断输入串是否构成语法上正确的“程序”。 语义分析与中间代码产生器,按照语义规则对语法分析器归约出(或推导出)的语法单位进行语义分析并把它们翻译成一定形式的中间代码。 有的编译程序在识别出各类语法单位后,构造并输出一棵表示语法结构的语法树,然后,根据语法树进行语义分析和中间代码产生。还有许多编译程序在识别出语法单位后并不真正构造语法树,而是调用相应的语义子程序。在这种编译程序中,扫描器、分析器和中间代码生成器三者并非是截然分开的,而是相互穿插的。 中间代码优化器,对中间代码进行优化处理。 目标代码生成器,把中间代码翻译成目标程序。 除了上述五个功能模块外,一个完整的编译程序还应包括“表格管理”和“出错处理”两部分。 编译程序在工作过程中需要保持一系列的表格,以登记源程序的各类信息和编译各阶段的进展状况。 合理地设计和使用表格是编译程序构造的一个重要问题。 在编译程序使用的表格中,最重要的是符号表。它用来登记源程序中出现的每个名字以及名字的各种属性。 例如,一个名字是常量名、变量名,还是过程名等等;如果是变量名,它的类型是什么、所占内存是多大、地址是什么等等。 通常,编译程序在处理到名字的定义性出现时,要把名字的各种属性填入到符号表中;当处理到名字的使用性出现时,要对名字的属性进行查证。 当扫描器识别出一个名字(标识符)后,它把该名字填入到符号表中。但这时不能完全确定名字的属性,它的各种属性要在后续的各阶段才能填入。 例如,名字的类型等要在语义分析时才能确定,而名字的地址可能要到目标代码生成才能确定。 由此可见,编译各阶段都涉及到构造、查找或更新有关的表格。 一个编译程序不仅应能对书写正确的程序进行翻译,而且应能对出现在源程序中的错误进行处理。 如果源程序有错误,编译程序应设法发现错误,把有关错误信息报告给用户。这部分工作是由专门的一组程序(叫做出错处理程序)完成的。 一个好的编译程序应能最大限度地发现源程序中的各种错误,准确地指出错误的性质和发生错误的地点,并且能将错误所造成的影响限制在尽可能小的范围内,使得源程序的其余部分能继续被编译下去,以便进一步发现其它可能的错误。 如果不仅能够发现错误,而且还能自动校正错误,那当然就更好了。但是,自动校正错误的代价是非常高的。 编译过程的每一阶段都可能检测出错误,其中,绝大多数错误可以在编译的前三阶段检测出来。 源程序中的错误通常分为语法错误和语义错误两大类。 语法错误是指源程序中不符合语法(或词法)规则的错误,它们可在词法分析或语法分析时检测出来。 例如,词法分析阶段能够检测出“非法字符”之类的错误;语法分析阶段能够检测出诸如“括号不匹配”、“缺少;”之类的错误。 语义错误是指源程序中不符合语义规则的错误,这些错误一般在语义分析时检测出来,有的语义错误要在运行时才能检测出来。 语义错误通常包括:说明错误、作用域错误、类型不一致等等。关于错误检测和处理方法,我们将穿插在有关章节介绍。 前面介绍的编译过程的五个阶段仅仅是逻辑功能上的一种划分。具体实现时,受不同源语言、设计要求、使用对
您可能关注的文档
- 君主专制韩非子.PPT
- 咦-地质与勘探.PDF
- 品牌传播的十大创意模式pps.PPT
- 哈工大校徽哈尔滨工业大学20年代校址.PPT
- 商业综合体中的标识导向系统设计研究-安徽建筑大学学报.DOC
- 商务信息系统设计方法-上海金融学院公共经济管理学院.DOC
- 四川普通高校职教师资和高职班对口招生职业技能考试大纲土木.DOC
- 嘉义99学年中小学环境教育辅导访视简报-Loxa教育网.PPT
- 四川社会的人间喜剧-北京大学中国语言学研究中心.PDF
- 四川科技馆科普六进活动-全国科普教育基地.PDF
- 文化创意产品数字化展览策划与实施技术案例研究.docx
- 2023年广东省广州市花都区炭步镇招聘社区工作者真题带答案详解.docx
- 化矿山建设建议书.pdf
- 2025年城市公共停车场建设项目社会稳定风险评估与公共安全管理体系研究报告.docx
- 2025年大型物流园区环保与社会稳定风险评估报告[001].docx
- 新金融时代背景下,2025年保险行业风险管理报告[001].docx
- 2025年天然气勘探开发技术装备出口潜力与市场分析报告.docx
- 2025年普通本科提前批B段院校专业组投档最低分.pdf
- 2023年广东省广州市花都区炭步镇招聘社区工作者真题含答案详解.docx
- 2025年宁德时代锂电池产能布局与新能源汽车市场竞争力分析报告.docx
最近下载
- 肯尼亚建筑市场行业报告.pptx
- 浙江杭州余杭交通集团有限公司招聘笔试题库2023.pdf VIP
- 人工胆囊、人工胆囊设备和人工胆囊在胆囊手术中的应用.pdf VIP
- 重力与弹力高一上学期物理人教版2019必修第一册+.pptx VIP
- 胃癌的诊治现状与进展.pptx VIP
- 数控压装压力机 第2部分:技术条件.docx VIP
- 【课件】匀变速直线运动速度与时间的关系+课件-高一上学期物理人教版(2019)必修第一册.pptx VIP
- XX医院职能部门监管手术、麻醉授权管理督导、检查、总结、反馈及持续改进记录表.pdf VIP
- 电力调度数据网络接入技术规范及网络拓扑图.doc VIP
- ZZGA高频开关整流器使用说明书.doc
文档评论(0)