天津大学编译原理Part1.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文档。上传文档
查看更多
编译原理课程概述 授课:胡静 手机课程教材和参考书 教材: 教材名称:编译原理(Compilers Principles, Techniques, and Tools) 主编:Alfred V.Aho, Ravi Sethi, Jeffrey D.Ullman,李建中,姜守旭译 出版社:机械工业出版社 主要参考资料 《程序设计语言编译原理(第3版)》,国防工业出版社,陈火旺等编著 《编译原理》,清华大学出版社,吕映芝、张素琴、蒋维杜编著 《编译器工程》——《Design a Compiler》,机械工业出版社,Keith D.Cooper、Linda Torczon著;冯速译 课程教学内容及时间安排 编译原理概论——1.5课时 高级语言和文法——2.5课时 词法分析——6课时 自顶向下语法分析方法——4课时 自底向上语法分析法——8课时 语法制导翻译——6课时 中间代码生成——4课时 类型检查——4课时 符号表——2课时 运行时环境—— 4课时 代码优化——3课时 并行编译基础——3课时 编译原理引论 授课:胡静 内容提要 编译器构造法的研究目的(什么是编译程序) 编译器的结构 编译的基本原则 编译器应有的性质 编译器的应用模型 编译过程综述 概括和展望 编译器构造法的研究目的 什么是编译程序 编译器构造法的研究目的 编译程序与其他软件的关系 软件:计算机系统中的程序及其文档 系统软件(操作系统):居于计算机系统中最靠近硬件的一层,其他软件一般都通过系统软件发挥作用。他和具体的应用领域无关,如编译系统和操作系统等。 语言处理系统(编译系统):把软件语言书写的各种程序处理成可在计算机上执行的程序。 软件语言:用于书写软件的语言。它主要包括需求定义语言,功能性语言,设计性语言,程序设计语言以及文档语言。 编译器构造法的研究目的 编译器和解释器的比较 相同点(执行相同的任务): 检查输入程序并确定这个程序是否一个有效程序 建立一个内部模型来刻画输入程序的结构和含义 决定在执行期间值的存放位置 不同点(执行的行为不同): 编译器以一个可执行程序的描述作为输入,以另一个等价的可执行程序的描述作为输出。 解释器以一个可执行程序的描述作为输入,以执行这一可执行程序描述的结果作为输出。 编译器构造法的研究目的 好的编译器是计算机科学的缩影 包含大量的技术:贪婪算法(寄存器分配)、启发式搜索技术(列表调度)、图形算法(死码消除)、动态规划(指令筛选)、有穷自动机和下推自动机(扫描和语法分析)、不动点算法(数据流分析) 处理复杂的问题:动态分配、同步、命名、局部化、存储器分层管理、管道调度 提供完整的解决方案:有机的结合算法、软件体系结构和软件工程的各种理论,对棘手问题给出综合性的解答方案。 编译器构造法的研究目的 一个语言处理系统(编译系统)举例 编译器构造法的研究目的 预处理器—产生编译器的输入 宏处理:宏的定义和引用 文件包含:把头文件包含到程序的正文中。 “理性”预处理器:把现代控制流和数据结构化机制添加到比较老式的语言中。 语言扩充:通过大量的内部宏定义来增强语言的能力 汇编器—对编译器的输出进行后期加工 装配连接编辑器—完成程序的装入和连接编辑两项功能 装入过程包括读入可重定位及其代码,修改可重定位地址,并将修改后的指令和数据放到内存中适当的位置 连接编辑器允许我们将多个可重定位代码的文件组成一个程序。 内容提要 编译器构造法的研究目的 编译器的结构 编译的基本原则 编译器应有的性质 编译器的应用模型 编译过程综述 概括和展望 编译器的基本原则 编译器是工程对象,是具有独特目标的大型软件系统,两个设计原则必须遵守 不违背原义 编译器必须保持被编译程序的含义不变 这一原则是编译器设计者与编译器用户之间的契约的核心 实用性原则 编译器必须用某种明确的方式改进输入程序 例如代码优化等对输入程序的改进 编译器应有的性质 速度(Speed) 空间(Space) 反馈(Feedback) 调试(Debugging) 编译时效率(Compile-Time Efficiency) 编译器的应用模型 分析-综合模型 分析部分将源程序切分成一些基本块并形成源程序的中间表示 词法分析 语法分析 语义分析 综合部分把源程序的中间表示转化为所需的目标程序,需要一些特定的技术 符号表管理 错误检测与报告 中间代码生成 代码优化 代码生成 编译器的应用模型 内容提要 编译器构造法的研究目的 编译器的结构 编译的基本原则 编译器应有的性质 编译器的应用模型 编译过程综述 概括和展望 词法分析 词法分析也叫线性分析和扫描。 从左到右的读构成源程序的字符流,分组为多个记号。 语法分析 词法分析也叫层次分析,把源程序的记号进一步分组,

文档评论(0)

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

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

1亿VIP精品文档

相关文档