词法分析:分析树与二义性文法详解
创作时间:
作者:
@小白创作中心
词法分析:分析树与二义性文法详解
引用
1
来源
1.
https://www.o2oxy.cn/4320.html
词法分析是编译原理中的一个重要环节,其中分析树和二义性文法是两个核心概念。本文将通过具体例子,详细解释分析树的结构特点,并探讨二义性文法的产生原因及其解决方案。
分析树
- 推导可以表达成树状的形状结构(和推导的顺序无关)
- 特点
- 树中的每个内部节点代表非终结符
- 每个叶子节点代表终结符
- 每一步推导代表如何从双亲节点生成它的直接孩子节点
例子1
假设我们有以下文法G:
E --> num
E --> id
E --> E + E
E --> E * E
尝试推导表达式 5 + 6 * 7
,可以得到两种不同的推导方式:
第一种推导方式
第二种推导方式
这两种推导方式的结果完全不同。这就导致了二义性的产生。正确的应该是第一种的方式。
二义性的消除
为了解决二义性问题,可以采用以下三种方案:
- 将二义文法改成非二义文法
- 规定二义文法中符号的优先级和结合性
- 改变语言的结构或书写方式
使用第一种方法
需要引入新的终结符,且新引入的非终结符:
E -> E + T
| T
T -> T * F
| F
F -> num
| id
推导过程:
E -> E + T
-> T + T
-> F + T
-> 5 + T
-> 5 + T * F
-> 5 + F * F
-> 5 + 6 * F
-> 5 + 6 * 7
使用第二种方法
引入优先级:
E -> T | E + T | E - T
T -> num | T * num | T / num
推导过程:
E -> T
E -> E + T
E -> T + T
T -> T * num
T -> num * num
E -> 5 + T
E -> 5 + T * F
E -> 5 + F * F
E -> 5 + 6 * F
E -> 5 + 6 * 7
更多解决方案可以参考:简书
热门推荐
旧家具环保新风尚,如何实现旧物利用与绿色生活
年假规则的具体实施步骤是什么
根除幽门螺杆菌,吃药应该注意些什么?
超详细镶牙过程图解:活动义齿、固定义齿、种植体全解析
《星露谷物语》存档修改:便利与游戏体验的权衡
日语词占汉语一半,没了日语寸步难行?打脸!这些都是出口转内销
仓鼠的科学喂食指南:频率、量与食物种类全解析
药酒:药效与酒劲的双重考量
新能源汽车遇到紧急情况,该如何逃生!
新能源汽车遇到紧急情况,该如何逃生!
一晚起夜几次就算夜尿增多?要治吗
如何防止电动汽车电池起火?新能源汽车锂离子电池安全技术解析
AMD处理器全面解析:命名规则与各代性能对比

量价关系:股票市场技术分析的基石
交易成功者的秘密:一位炒股大妈的12种K线形态策略
轮状病毒怎么治疗 如何治疗轮状病毒
为什么有些男生谈恋爱不是以结婚为目的?
会游泳的老鼠,长着蒜头鼻的鱼,科学家在意想不到的地方发现27种新生物
揭秘游戏界的传奇如何炼成?
Excel中模块1怎么改名
涡扇15版歼20再次“代际跃升”,首飞前推倒重来决策,功不可没
中英街:“一街两制”见证百年沧桑巨变
宝可梦:难以直视的专属“必杀”技,为何GF总执着于硬直?
【深度】网红为何老“翻车”?
阿勒泰至成都七日深度游:从雪域到天府的自驾之旅
健康用盐·从你我做起——低钠更健康科普讲座走进新华社
失败的项羽,为何后世仍青睐?英雄气概与悲壮情怀的永恒魅力
杜甫《八阵图》:功盖三分国,名成八阵图
小米SU7交通事故深度分析:责任归属与安全警示
前复权和后复权的本质是什么?这些本质对股票分析有何作用?