编译程序概论.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * 第一页,共二十一页,2022年,8月28日 本课程学习任务 编译原理课程以介绍程序设计语言编译程序构造的基本原理和设计方法为教学目标。通过本课程的学习,一方面使学生掌握和理解编译系统的结构、工作流程以及编译程序各组成部分的设计原理和实现技术,获得分析、设计、实现和维护编译系统的初步能力;另一方面,通过学习编译的理论和方法,提高学生对程序设计语言、操作系统、计算机原理和体系结构等课程知识的综合理解。 第二页,共二十一页,2022年,8月28日 编译技术集中体现了计算机科学发展的重要成果与精华。ACM图灵奖是授予在计算机技术领域作出突出贡献的科学家的最高奖励,自1966年设立以来,程序设计语言、编译理论与方法的方面的得奖成果约占总数的1/3。 对于将来从事编译系统设计工作的学生来说,编译原理课程将为其打下坚实的能力和知识基础;对于从事其它工作的学生,也能够提高他们对计算机系统总体的认识。此外,课程介绍的经典的语言分析方法和工具,对于设计一些实用的工具和软件,如自然语言理解、网络信息处理、网络协议的分析与实现等,都是必备的基础。因此,编译原理课程是高等学校培养计算机专业人才的核心课程。 本课程地位 第三页,共二十一页,2022年,8月28日 教材 教材: 《编译原理》,张素琴 等编著,清华大学出版社 参考书目: 《编译程序设计原理》,杜淑敏 等编著,北京大学出版社 《编译原理教程》,胡元义 等编著,西安电子科技大学出版社 相关知识:程序设计语言、计算机组成原理、数据结构、汇编语言、离散数学、操作系统等。 第四页,共二十一页,2022年,8月28日 第1章 编译程序概论 教学要求:本章讲解编译程序、 解释程序的基本概念,概述编译过程,介绍编译程序的逻辑结构和编译程序的组织形式。要求理解编译程序、解释程序和遍的基本概念;掌握编译过程各阶段的任务和编译程序逻辑结构及其各部分的基本功能。 教学重点:编译程序工作的基本过程及其各阶段的基本任务,编译程序总体框架。 第五页,共二十一页,2022年,8月28日 基本概念 机器语言:能够被计算机的硬件系统直接执行的指令程序。 汇编语言:将硬件指令用一些助记符表示。如ADD表示加法操作,SUB表示减法操作等等 高级语言:使用便于理解的自然语言。 第六页,共二十一页,2022年,8月28日 语言处理程序 解释程序(器):接受某种语言源程序,然后直接解释执行源程序。 编译程序(器):接受某种语言的源语 言程序后,将它改造成另一种逻辑上等价的目标语言程序。 第七页,共二十一页,2022年,8月28日 需预处理的源程序 预处理程序 源程序 编译程序 汇编程序 装配/连接编辑程序 目标汇编程序 可再装配的机器代码 绝对机器代码 可再装配目标文件 高级语言程序的处理过程 第八页,共二十一页,2022年,8月28日 表 格 管 理 词法分析 语法分析 语义分析 中间代码生成 代码优化 目标代码生成 出 错 处 理 源程序 目标程序 编译的各个阶段 第九页,共二十一页,2022年,8月28日 词法分析 词法分析的功能是从左到右读入源程序的每个字符,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词(也叫单词符号或符号)。 依据:语言的构词规则。 单词:逻辑上紧密相连的一组字符,这些字符具有集体含义。 如:标识符、保留字(关键字或基本字)、算符、界符等。 第十页,共二十一页,2022年,8月28日 语法分析 语法分析的功给是将单词序列分解成各类语法短语(也叫语法单位,句子),确定整个输入串是否构成一个语法上正确的程序。 依据:语言的语法规则。 第十一页,共二十一页,2022年,8月28日 语句的表示: 标识符:=表达式 是语句。 while (表达式) do 语句 if (表达式) then 语句 else 语句 都是语句。 第十二页,共二十一页,2022年,8月28日 语义分析的功能是审查源程序有无语义错误,为代码生成阶段收集类型信息。 语义分析主要能识别的语义错误有变量没有声明就使用,变量重复声明,运算对象类型是否匹配等等。 语义分析 第十三页,共二十一页,2022年,8月28日 中间代码生成 中间代码:一种结构简单、含义明确的记号系统。 原则: 容易生成; 容易将它翻译成目标代码。 如四元式: (运算符,运算对象1,运算对象2,结果) 将源程序生成一种内部表示形式,这种内部表示形式叫中间代码。 第十四页,共二十一页,2022年,8月28日 如:源程序 sum := first + count * 10 生成的四元式可以是: ( inttoreal, 10, -, t1 ) ( *, id3, t1, t2 ) ( +,

文档评论(0)

xiaoyao2022 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档