词法分析 | 分析树和二义性文法
创作时间:
作者:
@小白创作中心
词法分析 | 分析树和二义性文法
引用
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
5+6*7的推导过程
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
还有更多的方式可以参考如下的链接
https://www.jianshu.com/p/2d55d50f8bc4
本文原文来自o2oxy.cn
热门推荐
如何正确发音和灵活使用英语单词“hurt”的技巧与方法
小孩大便发白的原因及应对方法
令人感到绝望的熵增定律,它揭示宇宙万物都必然会走向死亡!
四柱八字中月柱的意义及计算方法 月柱解析与算法
电影《星际穿越》,一场充满危险的探索,感受超越一切的爱
鳑鲏鱼的习性特征与体型特征
如何了解黄金回收的最佳时机?回收价格受哪些市场因素影响?
小学英语学习的常见误区及相应突破策略
如何挑选古筝,古筝与古琴的区别
INTP 和ESFP 的区别体现:人际关系、友谊和伙伴关系
纳兰性德《点绛唇·小院新凉》:秋日黄昏里的思念
小孩子脱发严重是什么原因引起的
桂林旅游前三季度净利润下降超6成,游客越多为何生意越难做?
万古霉素的作用与功效
推翻幕府的统治:一场蓄谋了250年之久的一场复仇
智能体是什么?和大模型有什么联系和区别?
Cell论文:揭开人类基因组中的潜伏病毒对癌症免疫治疗的影响
静脉血管出血应该怎么处理
用空气炸锅忽略1件事 恐释放3大致癌物 营养师教2招减风险
触摸屏的触控面板是否支持多点触控用户自定义设置
小区大事|融洽邻里关系,这个社区组建“社区合伙人”
一文了解游戏安全保护的9种策略
如何加强游戏安全,防止定制外挂影响游戏公平性
“gg”的多重含义:从游戏文化到年轻人社交的表达方式
网络热词“gg”的多样解读:年轻人的情感与态度载体
如何合理布置家具以优化空间利用?这种布置对居住体验有何影响?
甲流后出现胸闷心慌等症状,是“心肌炎”的前兆吗?
一文读懂干性黄斑和湿性黄斑:从病因到治疗全解析
AR显示之硅基Micro LED技术问题及全彩化分析
黄金价格十年演变:影响因素与未来展望