语法分析-自上而下分析
更新时间:2023-09-29 10:19:01 阅读量: 综合文库 文档下载
- 语法分析树推荐度:
- 相关推荐
编译原理 第四章 语法分析—自上而下分析
第四章 语法分析—自上而下分析
知识结构:
带回溯分析法 回溯
自上而下分析 面临的问题 左递归 问题的解决
语法分析- 求FIRST、FOLLOW集合的算法 自上而下分析 LL(1)分析法 证明LL(1)文法 构造LL(1)分析表
递归子程序的构造思想 递归子程序法 递归子程序的特点 递归子程序的设计
第一节 语法分析综述 一、语法分析的任务
按照语言即定的语法规则,对字符串形式的源程序进行语法检查,并识别出相应的语法成分。即语法结构是否符合语法规则。 二、语法分析器在编译程序中的地位(一遍扫描)
源程序 单词符号 分析树 语义分析 词法分析器 语法分析器 中间代码生成 取下一个单词 共28页第1页 13-4-17
符号表 编译原理 第四章 语法分析—自上而下分析
三、语法分析方法
通常把语法分析方法分为两大类,既自上而下分析与自下而上分析。
1、自上而下分析方法
实际上是一种产生的方法,分析过程是一个推导过程。 ⑴自上而下分析过程
从文法G的开始符号S出发,通过反复使用产生式,逐步推导出与输入的符号串完全相匹配的句子。采用最左推导,以文法开始符号为根结点,逐步为输入串自上而下地构造一棵语法树。
面临的输入符号为a,A所有的产生式: A??1 ??2 ? ? ??n
①若a?FISRT(?i),则指派去执行匹配任务。 ②若a不属于任何一个候选首字符集,则:
a、若 ? 属于某个FISRT(?i)且a?FOLLOW(A),则让A与?自动匹配;
b、否则,a的出现是一种错误。 例:设有文法G和输入符号串W:a*a+a G:S ? aA?a
A ? BaA?? B ? +? -?*?/
推导过程:
S?aA?aBaA?a*aA?a*aBaA?a*a+aA?a*a+a=W
共28页第2页 13-4-17
编译原理 第四章 语法分析—自上而下分析
构造语法树: S a A B a A * B a A + ? ⑵自上而下分析法
自上而下分析法又可分为确定和不确定的两种。 ①不确定的分析法(带回溯)
是一种穷举的试探方法,效率低、代价高,极少使用。 ②确定的分析法(不带回溯)
实现方法简单、直观,便于手工构造或自动生成语法分析器,是目前常用的方法之一。但是对文法有一定的限制。
2、自下而上分析法 ⑴自下而上分析过程
分析过程是归约过程。从给定的输入串W开始,不断寻找与文法G中某个产生式P的侯选式(右部)进行匹配,并用P代替也称为归约。
⑵自下而上分析法 ①算符优先分析法
定义算符(广义讲是文法的终结符号)之间的某种优先和结合关系,借助这种关系来寻找并确定可归约字符串,并进行归约。
共28页第3页 13-4-17
编译原理 第四章 语法分析—自上而下分析
②LR分析法
是一类自左向右对输入串进行扫描的自下而上分析方法,分析过程是规范归约的序列。适用于语法分析器的自动构造。
第二节 自上而下分析面临的问题 一、不确定的自上而下分析方法
是从文法的开始S出发,试图用一切可能的方法向下推导,产生句子,这种分析过程的本质是一种试探推导过程。
例:文法G ⑴ S ? aAd
⑵ A ? ab?a
构造W=aad的最左推导:S?aAd?aad。 构造语法树:
①产生树的根结点,即文法的开始符号。 ②选用文法G的文法规则去延伸树。
③判断当前延伸的子结与输入串扫描到的字符是否匹配。 ④若不匹配注销掉当前延伸的子树,选用文法规则的另一个产生式延伸分析树。
⑤直到输入串与语法树末端结点相匹配,分析结束。 S S S a A d a A d a A d a b a
这种试探识别句子的过程,只会使分析的过程不确定。
共28页第4页 13-4-17
编译原理 第四章 语法分析—自上而下分析
二、不确定性的原因
由于分析过程中选择的侯选式不确定,造成输入串匹配的假象,甚至会导致算法实现的失败。
1、左递归问题
由于采用最左推导,左递归将使得输入串的分析过程陷入无限循环之中。
2、回溯问题
⑴采用试探的方法,如匹配不成功回溯到前面分析的某一步。 ⑵可能出现假匹配,造成对输入串识别的失败。 ⑶不能准确报告输入串的出错位臵。 三、确定的自上而下分析方法
1、确定的自上而下分析方法的必要条件 ⑴消除文法中的左递归; ⑵消除文法中的回溯问题。 2、消除文法的左递归
文法的左递归可以通过对文法产生式进行改写,使之不含有左递归的非终结符号。左递归一般有两种情况,直接左递归和间接左递归。
⑴直接左递归
如果文法中任意一个非终结符P,若P?P?(??VNUVT),并且在最左推导中有P?P?形式,称为直接左递归。
⑵间接左递归
共28页第5页 13-4-17
正在阅读:
语法分析-自上而下分析09-29
文学理论教案(电子版)04-26
小蚂蚁搬西瓜的作文06-19
国外农业科技服务模式及经验探析08-14
基层第一届工会委员会选举结果的请示10-03
世界近代史 法国大革命06-03
国际金融学习题答案07-27
2.静脉输液管理制度05-08
2017年广东技术师范学院民族学805综合理论之外国美术简史考研题库04-28
广东工业大学冲压模具设计作业@部分习题04-10
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 分析
- 自上而下
- 语法
- 雄崖所建置沿革志
- 公司讲文明行善举重孝道活动方案
- 4岁至12岁儿童各部位实测参考尺寸表
- 5.课程设计说明书格式 - 图文
- 新视野大学英语3试卷
- (0174)欧洲文化入门复习思考题
- 教育见习总结 终版
- 概率论模拟卷1~6及答案汇总
- 浙江省五校2010—2011学年度高三第一次联考
- 模拟驾驶实训报告
- 2017年湖南省七年级英语上册期末试卷(附答案)
- 2019年中国税务信息化市场全景调查与行业竞争对手分析报告目录
- 三草酸合铁酸钾的制备
- PG9351FA燃气轮机系统介绍
- 基站配套工程重点难点分析及合理化建议
- 2014年度安全题库
- 内部-禁分享狼牙棒、西方负典与秩序彼岸论 阿姨分答冬川豆会员分享第二期
- 公司违反《公司法》第16条的规定,为他人民间借贷提供担保的,其效力如何认定?
- 心绞痛诊治指南 - 图文
- erp系统在中国制造业中的现状与对策