编译第一章08本new.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文档。上传文档
查看更多
编译第一章08本new.ppt

中国科大 编译原理 XXXXXXXXXXXXXXXXXXXX 课 程 简 介(课程地位)       课程简介(课程间的拓扑图) 开课目的 预备知识:两门以上的高级      程序设计语言 课 程 简 介 学习的意义 对编程语言的设计和实现有深刻的理解,对和编程语言有关的理论有所了解,对宏观上把握编程语言来说,起一个奠基的作用. 从软件工程看,编译器是一个很好的实例,所介绍的概念和技术能应用到一般的软件设计之中. 大多数程序员同时是简单语言的设计者,有助于提高对这些语言的设计水平. 它的理论基础扎实,其形式化系统不仅应用于编译技术,还大量应用于人工智能,多媒体技术及数据库等领域. 课 程 简 介 [教材和参考书] 肖军模,程序设计语言编译方法,大连理工大学出版社 陈火旺等,程序设计语言编译原理,国防工业出版社,2000 陈意云、张昱,编译原理和技术,高等教育出版社, 2003 吕映芝等,编译原理,清华大学出版社 课 程 简 介 课程要求: 课时:48学时 分为两部分:(分别计分) 理论基础(48学时):课堂教学 实践部分(0学时):上机实践 目的: 掌握编译的理论基础和形式化系统,了解编译的全过程及其具体实现方法。能运用所学技术解决实际问题,能独立编写一个小型编译系统。 课 程 简 介 要求: 提前预习,认真听课,理解基本概念,基本原理与基本算法 在看书时或理解例题及习题时,一定要划出相应的细节变化过程,通过画图来加深理解 作业要求独立、按时完成 辅导地点:耘慧楼 421 E-mail:guow9966@163.com 答疑时间: 学期总评 = 考试成绩占80%,平时占20% 内容简介 ?第一章 引论 ?第二章 编译基础 ?第三章 词法分析 ?第四章 自上而下语法分析 ?第五章 自下而上语法分析 ?第六章 语法制导翻译技术和中间代码生成 ?第七章 运行时的存贮空间组织 ?第八章 优化 ?第九章 目标代码生成 ?第十章 面向对象语言编译 第一章 引 论 (介绍名词术语、了解编译系统的结构和编译过程) 1.1 什么叫编译程序? 编译程序的种类 诊断编译程序 优化编译程序 交叉编译程序 可变目标编译程序 1.2 编译过程概述 一段英文翻译成中文 需经下列步骤: 识别出句子中的单词 分析句子的语法结构 根据句子的含义进行 初步分析 对译文进行修饰 写出最后的译文 举例说明 Void jisuan( ) { int y,c,d; float x,a,b; x=a+b*50; y=c+)d*(x+b; } 一.词法分析 词法分析依照词法规则,识别出正确的单词,转换成统一规格备用 转换 —对基本字,运算符,界符的转换 —标识符的转换 —常数的转换 —转换完成后的格式(类号,内码) 描述词法规则的有效工具是正规式和有限自动机 1.词法分析 完成的任务: 第一章 引 论 赋值语句的语法规则: A::=V=E E::=T|E+T T::=F|T*F F::=V|(E)|C V::=标识符 C::=常数 语法分析的方法: ——推导(derive)和归约(reduce) 推导——最左推导,最右推导 最右推导 最左归约 (x=a+b*50) 归约—最右归约,最左归约 A V=E x=E x=E+T x=T+T x=V+T x=a+T x=a+T*F x=a+F*F x=a+V*F x=a+b*F x=a+b*C x=a+b*50 最左推导 最右归约 C语言语句 y=c+)d*(x+b 分析过程: A V=E V=E+T V=E+F V=E+V V=E+b V=T+b V=T*F+b V=T*V+b V=T*x+b 无法得到该句 故,该C语言语句是错误的 具体地说,语法分析是在记号流的基础上建立一个层次结构——建立语法树 语法分析过程也可以用一棵倒着的树来表示 这棵树叫语法树,比如上述程序段中的单词序列:id1=id2+id3*60经语法分析得知其是PASCAL语言的“赋值语句”,表示成如下所示形式。 第一章 引 论 总结一下语义分析主要的任务:   完成静态语义审查和处理    上下文相关性审查    类型匹配审查    类型转换 第一章 引 论 k=1 10 if k=100 then

文档评论(0)

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

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档