编译原理与实现第章编译概述.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1 、词法分析程序 (又称 扫描器) 词法分析依次读入源程 序中的每个字符,依据语言 的构词规则,识别出一个个 具有独立意义的最小语法单 位,即“ 单词 ”,并用整数 码或有意义的记号来表示每 个单词的词性是保留字、标 识符、分界符、运算符或常 数。 例如,表达式 a=10+c*20 的 词法分析结果如右表所示。 整数码 记号 单词 100 ID a 21 = = 200 NUM 10 22 + + 100 ID c 25 * * 200 NUM 20 2 、语法分析程序 依据语言的语法规则, 逐一地分析词法分析时得 到的单词,以确定它们是 怎样组成说明和语句的, 以及说明和语句是怎样组 成程序的。 分析时如发现有不合 语法规则的地方,则报告 出错位置和性质;如无语 法错误,则以另一种内部 表示(如语法分析树或其 它中间表示)给出正确的 语法结构,供下一阶段分 析使用。 “ 猴子吃香蕉”的 语法分析树 a=10+c*20 的语法分析树 3 、语义分析程序 依据语言的语义规则对语法分析得到的语 法结构进行静态语义检查(即确定类型、类型 和运算合法性检查、识别含义与相应的语义处 理及其它一些静态语义检查),并用另一种内 部形式表示出来,供下一阶段使用。 4 、中间代码生成程序 (可有可无) 根据语法成分的语义对其进行翻译,用另 一种接近于计算机的指令形式(中间代码)表 示出来,供下一阶段使用。 语义分析及中间代码生成示例 5 、中间代码优化程序 ( 可有可无 ) 6 、目标代码生成程序 将中间代码或优化之后的中间代码转换 为等价的目标代码。 目标代码的形式可以是绝对指令代码、 可重定位的机器指令代码或汇编指令代码。 目标代码依赖于具体的计算机的硬件系统结 构和指令系统。 7 、符号表处理程序 编译过程中要记录源程序中出现的标识符, 并收集每个标识符的各种属性信息。符号表是由 若干记录组成的数据结构,每个标识符在表中有 一条记录。 标识符的各种属性是在编译的不同阶段填入 符号表的。词法分析阶段只能分析出标识符名, 语法分析阶段只能判断标识符在语句中出现是否 合法,语义分析阶段将标识符的各种属性填入符 号表并使用这些属性生成中间代码。 标识符名 标识符类型 类型 地址 aaa 1 (表示变量) 1 (表示整型) 0001 8 、出错处理程序 编译的各个阶段都可能发现源程序中的 错误。任意时刻发现错误,都应该报告错误 信息,包括错误出现的位置、错误性质等, 为程序员调试程序提供方便,从而使编译能 继续进行。 词法分析可以检测出源程序中的非法符 号。语法分析能够发现程序语句中的各种语 法错误,如括号不匹配等等。语义分析能判 断运算对象的类型是否匹配、变量是否重复 声明或没声明就使用等错误。 例 int a,b; a= 2*)12+b); 编译原理及实现 任课教师: 韦艳艳 联系电话: E-mail : ybwyy2006@ 编译原理 --- 课前思考 ? 为什么有些语言规定标识符不能超过 8 个字符?而有些语言 对标识符的长度无限制? ? 为什么有些语言能实现递归,而有些语言不能? ? C 语言规定数组下界为 0 ,上界为声明的数减 1 ,为什么? ? 嵌套的 IF 语句规定 ELSE 与上面最近的 IF 配对,为什么? ? 为什么有些程序运行一段时间后会导致内存溢出? ? 为什么 Java 实现了“一次编写,到处运行”? ? …… 学习目的 了解和掌握设计和构造编译 程序的基本原理、基本技术及其 实现方法,加深对计算机系统的 了解,培养和提高计算(机)思 维能力。 各章节内容 第 1 章 编译概述( 2 课时) 第 2 章 文法和语言( 6 课时) 第 3 章 词法分析( 6+4 课时) 第 4 章 语法分析 -- 自顶向下分析( 6+4 课时) 第 5 章 语法分析 -- 自底向上分析( 6 课时) 第 6 章 语法制导翻译技术( 6 课时) 第 7 章 符号表管理技术 ( 2 课时) 第 8 章

文档评论(0)

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

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

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档