编译原理(Pinciple of Compilation).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文档。上传文档
查看更多
编译原理(Pinciple of Compilation)

中国科大 编译原理 (Principle of Compilation) 计算机学院科学系 林泓 课 程 简 介 课程内容 介绍编译器构造的一般原理和基本实现方法 介绍的理论知识:形式语言和自动机理论、语法制导的翻译、属性文法等 强调形式化描述技术 强调对编译原理和技术的宏观理解,不把注意力分散到枝节算法,不偏向于某种源语言或目标机器 课 程 简 介 学习的意义 对编程语言的设计和实现有深刻的理解,对和编程语言有关的理论有所了解,对宏观上把握编程语言来说,起一个奠基的作用。 从软件工程看,编译器是一个很好的实例,所介绍的概念和技术能应用到一般的软件设计之中。 大多数程序员同时是简单语言的设计者,有助于提高对这些语言的设计水平。 在软件逆向工程、程序理解和软件安全等方面有着广泛的应用。 课 程 简 介 教材和参考书: (1)陈火旺,编译原理,国防工业出版社 (2)A. Aho, R. Sethi, and J. D. Ullman, Compilers: Principles, Techniques, and Tools 人民邮电出版社 (3)何炎祥 ,编译原理,华中理工大学出版社 (4)陈意云,编译原理与技术,中国科学技术 大学出版社 (5)吕映芝,编译原理,清华大学出版社 (6)金成植,编译程序构造原理和实现技术 高等教育出版社 课 程 简 介 课程要求 目标:师生共同努力,能够全体通过考试 讲课进展较快,平时不复习并加深理解,后面将听不懂 作业较多,要求独立完成 上机实验,不要轻视 阅读PL/0编译器,会有很大收获 考试闭卷,不会轻松 学期总评 = 考试成绩占70%,平时占30% 第一章 引 论 翻译器、解释器 编译器从逻辑上可以分成若干阶段 每个阶段把源程序从一种表示变换成另一种表示 通过描述编译器的各个阶段来介绍编译这个课题 1.1 什么叫编译程序 翻译器(翻译程序):translater 能将一种语言程序(源语言程序)转换成另一种等价的语言程序(目标语言程序) 编译器(编译程序):compiler 能将一种计算机高级语言程序(源语言程序)转换成另一种等价的计算机低级语言程序(目标语言程序) 解释器(解释程序):interpreter 也是一种翻译程序,以一种语言写的源程序作为输入,但不产生目标代码,而是边解释边执行。 解释器与编译器的区别: 编译分成两步完成:先翻译,再运行 解释只用一步完成:边解释边执行 1.2 编译程序的组成 一 词法分析过程 二 语法分析过程 任何一个标识符都是表达式; 任何一个数都是表达式; 如果e1和e2都是表达式,那么 ? e1 + e2 ? e1 * e2 ? (e1) 也都是表达式 二 语法分析过程 三 语义分析过程 前三个阶段的作用 四 中间代码的产生过程 五 中间代码的优化过程 六 目标代码的产生过程 后三个阶段的作用 如何学习构造编译程序 源语言,对被编译的源程序要深刻理解其结构和含义 目标语言,假定目标语言是机器语言,就必须搞清楚硬件的系统结构和操作系统的功能 编译方法,把一种语言翻译成另一种语言的方法很多,需掌握一种 先介绍语法,然后才介绍语法分析。 * 词法分析器 语法分析器 语义分析器 源程序 中间代码生成器 代码优化器 代码生成器 目标程序 出错管理器 符号表管理器 符 号 表 保留字 标识符 赋值号 for . . i. . =. . 1 2 3 词法分析器 符号序列 For I=1 to 100 do 表达式 表达式 表达式 标识符 表达式 表达式 (initial) 标识符 (rate) 数 (60) * + 语法分析器 id1 := id2 + id3 * 60 := + * 60 id1 id2 id3 符 号 表 position initial rate . . . . . . . . . 1 2 3 语义分析器 := + * 60 id1 id2 id3 := + * 60 id1 id2 id3 inttoreal 词法分析器 语法分析器 语义分析器 源程序 中间代码生成器 代码优化器 代码生成器 目标程序 出错管理器 符号表管理器 前三个阶段完成对源程序的分析 中间代码生成器 temp1 := into real(60) temp2 := id3 * temp1 temp3 := id2 + temp2 id1 := temp3 := + * 60 id1 id2 id3 inttoreal 代码优化器 temp1 := inttoreal(60

文档评论(0)

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

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

版权声明书
用户编号:6153235235000003

1亿VIP精品文档

相关文档