ch5-new自顶向下语法分析方法.ppt

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一章 编译概述 第一章 编译程序概论 §1.1 什么是编译程序 §1.2.1 编译过程概述 1、词法分析(扫描器) 2、语法分析 3、语义分析(1) 3、语义分析(2) 4、中间代码产生 5、代码优化 6、目标代码生成 §1.2.2 编译程序的结构 §1.2.3 编译阶段的组合 § 1.4 程序设计语言范型(1) 强制式语言(过程式语言) 面向动作,即一个计算过程就是一系列动作,其动作是命令驱动的,用语句形式表示.一个强制式语言程序由一系列的语句组成,每个语句的执行引起若干存储单元中的值的改变。 语法形式为: 语句 1; 语句 2; …… 语句 n; 例如:C、FORTRAN、Pascal、C++、Ada 语言程序的测试工具:静态分析器与动态测试器 静态分析器 在不运行程序的情况下对源程序进行静态地分析,以发现程序中潜在的错误或异常。对源程序进行语法分析并制定相应表格,检查变量定值与引用的关系。 例如:某变量未被赋值就被引用;变量定值后未被引用;多余的源代码等. §1.3.2 编译技术和软件工具(2) 语言程序的测试工具:静态分析器与动态测试器 动态测试器 --在源程序的适当位置插入某些信息,并用测试用例记录(显示语句或函数)程序运行时的实际路径.将运行结果与期望结果进行比较分析,帮助编程人员查找问题. §1.3.2 编译技术和软件工具(3) 高级语言之间的转换工具 程序格式化工具 程序理解工具 对程序进行分析,确定模块间的调用关系,记录程序数据的静态属性和结构属性,并画出控制流程图,帮助用户理解程序。 程序设计语言的分类方法有许多种:应用领域、按照支持的计算模式等 按照支持的计算模式,程序设计语言可以分为: * * 任课教师:湛 燕 Email: zhanyan@hbu.edu.cn 数学与计算机学院 名 称 作 者 出版社 出版时间 编译原理 何炎祥 华中理工大学 2000.10 编译原理 陈火旺等 国防工业出版社 2000.1 编译原理 蒋立源 西北工业大学 1999.9 编译原理(第二版). 张素琴,吕映芝,蒋维杜,戴桂兰编著,清华大学出版社,2005.2. 教 材 与 参 考 书 《编译原理及实践》 主要介绍编译程序的基本概念、基本结构。 1.1 什么是编译程序 1.2 编译过程及编译程序结构 1.2.1 编译过程 1.2.2 编译程序的基本结构 1.3 编译技术和软件工具 1.4 程序设计语言范型 翻译程序(translator) 编译程序(compiler) 源程序的加工过程 与编译程序相关的程序 编译程序是现代计算机系统的基本组成部分之一,而且多数计算机系统尤其是嵌入式系统和高性能体系结构都含有不止一个高级语言的编译程序,对有些高级语言甚至配置了几个不同性能的编译程序。 从功能上看,一个编译程序就是一个语言翻译程序。 目标程序 翻译程序 源程序 翻译程序(translator) 翻译程序是指这样一个程序,它把一种语言(源语言)所写的程序(源程序)翻译成与之等价的另一种语言(目标语言)的程序(目标程序)。 源语言:source language 源程序:source program 目标语言:object or target language 目标程序:object or target program 编译程序(编译器compiler) 如果源语言是高级语言,目标语言是低级语言,那么称这样的翻译程序为编译程序。 高级语言:C、PASCAL、C++、FORTRAN、JAVA 低级语言:汇编语言、机器语言 目标程序 编译程序 源程序 高级语言所写程序 汇编语言或 机器语言程序 汇编程序(Assembler) 如果源语言是汇编语言,目标语言是机器语言,那么称这样的翻译程序为汇编程序。 目标程序 汇编程序 源程序 汇编语言所写程序 机器语言程序 源程序的加工过程 采用编译方式在计算机上执行高级语言编写的程序,一般分两大阶段,编译阶段和运行阶段。 源程序 编译程序 机器语言目标程序 结果 初始数据 运行系统 源程序 机器语言 目标程序 结果 初始数据 运行系统 如果编译阶段生成的目标程序不是机器程序,而是汇编程序,则程序的执行需分三个阶段,编译阶段、汇编阶段和运行

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档