编译原理清华大学第编译程序概论剖析.pptVIP

编译原理清华大学第编译程序概论剖析.ppt

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理 第1章 编译程序概论 教学要求:本章讲解编译程序、 解释程序的基本概念,概述编译过程,介绍编译程序的逻辑结构和编译程序的组织形式。要求理解编译程序、解释程序和遍的基本概念;掌握编译过程各阶段的基本任务。 教学重点:编译程序工作的基本过程及其各阶段的基本任务。 基本概念 机器语言:计算机唯一能够识别和执行 的语言。 汇编语言:用助记符代替机器语言二进制编码的语言。如ADD表示加法操作,SUB表示减法操作等等 高级语言:使用便于理解的自然语言。 语言处理程序 解释程序(器):接受某种语言源程序,然后直接解释执行源程序。 编译程序vs解释程序 把英文I am a university student翻译为中文 识别出句子中的一个个单词; 分析句子的语法结构; 根据句子的含义进行初步翻译; 对译文进行修饰; 写出最后的译文。 例: A:=B+x*60; 单词类型 单词值 标识符1(id1) A 运算符(赋值) := 标识符2(id2) B 运算符(加) + 标识符3(id3) x 运算符(乘) * 常数(整数) 60 界符(分号) ; 语义分析的功能是审查源程序有无语义错误,为代码生成阶段收集类型信息。 语义分析主要能识别的语义错误有:变量没有声明就使用,变量重复声明,运算对象类型是否匹配等等。 依据:语义规则。 符号表管理 符号表用来记录源程序中出现的标识符,并收集每个标识符的各种属性信息。 符号表是由若干记录组成的数据结构,每个标识符在表中有一条记录,每条记录有多个域,每个域记载标识符的一个属性。 1.自编译 用某种高级语言书写自己的编译程序称为自编译。 例如,假定A机器上已有一个PASCAL语言可以运行,则可以用PASCAL语言编写出一个功能更强的PASCAL语言编译程序,然后借助于原有的PASCAL编译程序对新编写的PASCAL编译程序进行编译,从而在编译后即得到一个能在A机器上运行的功能更强的PASCAL编译程序。 2.交叉编译 交叉编译是指用A机器上的编译程序来产生可在B机器上运行的目标代码。 例如,若A机器上已有C语言可以运行,则可用A机器中的C语言书写一个编译程序,它的源程序是C语言程序,而产生的目标程序则是基于B机器的,即能够在B机器上执行的低级语言程序。 3.自展 自展的方法是:首先确定一个非常简单的核心语言L0,然后用机器语言或汇编语言书写出它的编译程序T0;再把语言L0扩充到L1,此时有L0 L1,并用L0编写L1的编译程序T1(即自编译);然后再把语言L1扩充为L2,此时有L1 L2,并用L1编写L2的编译程序T2;…… 这样不断扩展下去,直到完成所要求的编译程序为止。 4.移植 移植是指A机器上的某种高级语言的编译程序稍加改动后能够在B机器上运行。 一个程序若能较容易地从A机器上搬到B机器上运行,则称该程序是可移植的,移植具有一定的局限性。 * * 本课程的地位 计算机科学与技术最重的专业课之一,掌握编译方法和技术是每一个优秀计算机软件专业人员的必备素质。 很多被称为程序设计大师的人都是编译领域的高手.写出第一个微型机上运行的Basic语言的比尔盖茨,设计出Delphi的Borland的“世界上最厉害的程序员”, Sun的JAVA之父, 贝尔实验室的C++之父等等。 学习编译程序的构造原理和实现技术,在软件工程、程序理解和软件安全方面有着广泛的应用。 学习任务 通过本课程学习,使学生掌握编译程序的一般构造原理,包括语言基础知识、词法分析程序设计原理和构造方法,各种语法分析技术和中间代码生成、代码优化、运行时存储空间的组织等基本方法和主要实现技术。。 相关知识:离散数学、高级程序设计语言、计算机组成原理、数据结构、汇编语言、操作系统等。 教材 教材: 《编译原理》,张素琴 等编著,清华大学出版社 参考书目: 《编译程序设计原理》,杜淑敏 等编著,北京大学出版社 《程序设计语言编译原理》,陈火旺等编著,国防工业出版社 解释程序解释执行过程的示意图 编译程序(器):接受某种语言的源语言程序后,将它改造成另一种逻辑上等价的目标语言程序。 图1编译程序的功能 图2源程序的编译和运行阶段 图3源程序的编译、汇编和运行阶段 编译 解释 词法分析 语法分析 语义分析和中间代码产生成 优化 目标代码产生 表 格 管 理 词法分析 语法分析 语义分析

文档评论(0)

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

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

版权声明书
用户编号:5341224344000002

1亿VIP精品文档

相关文档