词法分析:分析树与二义性文法详解
创作时间:
作者:
@小白创作中心
词法分析:分析树与二义性文法详解
引用
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
更多解决方案可以参考:简书
热门推荐
冷知识!这些眼药水需要“冷藏”
德国旅游签证所需资料清单
今年买的四款龙井;不同时节、产地、级别的个人体验
《沙丘3》上映时间确定!电影最终章,三大未解之谜!
云图指标怎样进行准确设置?这种准确设置有哪些技巧?
卖啤酒需要什么条件?一文详解开店必备要求
如何计算置信区间?置信区间的计算方法有哪些?
如何为硬盘或U盘选择最佳格式化方式?
公司SWOT分析是什么
蒙脱石散能治肠炎吗
正态分布标准化与数据预处理的关系是什么?
量子力学背后的基础数学—线性代数,这才是你首先需要掌握的内容
什么决定了钻石的价值?
组合数学中的Nim游戏:探索博弈组合策略的秘密
《哪吒2》狂揽149亿后,光线传媒的野心不止于此
揭秘动画电影《哪吒2》幕后的制作故事
岛台安装指南:选择合适材质和风格的关键要点
五行和八卦的关系3分钟讲的清楚
GNS3报错快速排查与修复指南:常见问题解析
厦门居住证查询指南
国盛金控三连板背后:吸收合并国盛证券并非重大并购,结果仍待审核
霉菌与健康:不可忽视的家庭隐患
深圳医保个人账户余额可为亲属医保缴费
湖南长沙橘子洲头景点介绍,感受毛主席豪情,领略江洲魅力!
这6条应对霸凌的守则,越早告诉孩子越好,建议家长学起来
羊粪有机肥的发酵方法,与其它原料混合后再建堆
不愧是人民日报推荐,一定要读的5本顶级好书
设施无障碍 出行更有爱
植发全解析:2025年费用过程与行业变化及案例
怎么纠正普通话口音,可以从发音练起