ch1-编译程序概论.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文档。上传文档
查看更多
ch1-编译程序概论.ppt

第一章 编译程序概论 §1.1 什么是编译程序 §1.2.1 编译过程概述 1、词法分析(扫描器) 1、词法分析(扫描器) 2、语法分析 3、语义分析 4、中间代码产生 4、中间代码产生 5、代码优化 6、目标代码生成 §1.2.2 编译程序的结构 §1.2.2 编译程序的结构 §1.3 编译程序的生成 1.5 程序设计语言范型 按照支持的计算模式,程序设计语言分为: 强制式语言(过程式语言) 函数式语言 基于规则(逻辑)的语言 面向对象语言 1.5 程序设计语言范型 强制式语言(过程式语言) 面向动作,即一个计算过程就是一系列动作,其动作是命令驱动的,用语句形式表示.一个强制式语言程序由一系列的语句组成,每个语句的执行引起若干存储单元中的值的改变。语法形式: 语句 1; 语句 2; …… 语句 n; 例如:C、FORTRAN、Pascal、C++、Ada 4、遍(pass): 对源程序或源程序的中间结果从头至尾扫描一次,并作有关的加工处理,生成新的中间结果或目标程序的处理过程。 一个阶段可以分为若干遍或 多个阶段合为一遍。 通常有一遍和多遍编译程序。 词法分析→语法分析→语义分析与中间代码生成→优化→目标代码生成 5、编译的前端与后端 前端(front end) : 由与源语言有关但与目标机无关的部分组成。 后端(back end) : 包括与目标机有关的部分。而一般不依赖于源语言,只与中间代码有关的编译阶段。 前端 (中间代码) 后端 §1.2.2 编译程序的结构 机器/汇编语言直接编写 采用自编译方式产生编译程序:先实现语言的内核编译再进行自编译扩展 利用编译程序产生器输入源语言和目标语言的形式描述而自动产生编译程序 先实现某语言的编译再用该语言实现另一语言的编译,即编译—编译程序 表示:如果 A 机器有用 A 机器代码实现的 L1 语言到 A 机器代码的编译程序 P1,则可用 L1 语言实现 L2 语言到 A 语言的编译程序 P2,将 P2 经过 P1 编译后可得到用 A 机器代码实现的 L2 语言到 A 机器代码的编译程序 P3 表示:源语言 S、目标语言 T 和编译程序的实现语言 I 之间的关系。 S T I T形图: L2 A L1 L1 A A L2 A A 编译程序 p2 编译程序 p1 编译程序 p3 §1.4 编译技术和软件工具 开发高质量与高效率的软件遵循的要求: 1)软件工程中要求的规范化标准 2)先进的软件开发技术及其软件工具 语言的结构化编辑器 结构化编辑器是引导用户在语言的语法制导下编制程序,能够自动地提供关键字和与其匹配地关键字。 例如,Editplus、Ultraedit、Jbuilder等 软件工具开发使用的编译技术与方法: §1.4 编译技术和软件工具 语言程序的调试工具 对算法的错误或程序未能反应算法的功能等错误进行调试。 语言程序的测试工具-静态分析器与动态测试器 静态分析器--在不运行程序的情况下对源程序进行静态地分析,以发现程序中潜在的错误或异常。对源程序进行语法分析并制定相应表格,检查变量定值与引用的关系。 例如:某变量未被赋值就被引用;变量定值后未被引用;多余的源代码等。 动态测试器 -在源程序的适当位置插入某些信息,并用测试用例记录(显示语句或函数)程序运行时的实际路径.将运行结果与期望结果进行比较分析,帮助编程人员查找问题. 高级语言之间的转换工具 程序格式化工具 程序理解工具 对程序进行分析,确定模块间的调用关系,记录程序数据的静态属性和结构属性,并画出控制流程图,帮助用户理解程序。 §1.4 编译技术和软件工具 * * * * 张素琴,吕映芝,蒋维杜,戴桂兰编著 清华大学出版社 编 译 原 理(第二版) 编译原理,何炎祥,华中理工大学,2000.10 编译原理,陈火旺等,国防工业出版社,2000.1 编译原理,蒋立源,西北工业大学,1999.9 参 考 书 目 主要介绍编译程序的基本概念、基本结构。 1.1 什么是编译程序 1.2 编译过程及编译程序结构 1.2.1 编译过程 1.2.2 编译程序的基本结构 1.3 编译程序的生成方法 1.4 编译技术和软件工具 1.5 程序设计语言范型 翻译程序(translator) 编译程序(compiler) 源程序的加工过程 与编译程序相关的程序 编译程

文档评论(0)

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

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

1亿VIP精品文档

相关文档