词法分析:分析树与二义性文法详解
创作时间:
作者:
@小白创作中心
词法分析:分析树与二义性文法详解
引用
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
更多解决方案可以参考:简书
热门推荐
那些可爱又迷人的反派角色,究竟为什么可爱又迷人?
重庆长寿三倒拐:探寻市级历史文化街区的独特魅力
重庆多家博物馆推出138个春节主题展览
推拿的适应症与禁忌症:专业医生详解传统疗法的安全使用指南
金庸最好的小说:《天龙八部》的传奇魅力
9·11后的美军反恐战争:真相揭秘
“9·11”事件20周年:美国反恐战争的得失
粢饭,老辰光上海人的早餐记忆,脑海里不能忘怀的味道
挑选龙头股的九个技巧:龙头股通常在大盘下跌末端,先于大盘启动
短线炒股的风险控制方法是什么?这些方法的实际效果如何?
纪昀心理师教你如何走出失恋阴影
凯蒂教你如何走出失恋阴影
失恋后去丽江古城治愈心情
北京中医药大学专家详解:中医防治口腔溃疡全攻略
压力大?小心口腔溃疡找上门!
余麦口咽合剂:口腔溃疡的克星
秋冬润喉神器:冰糖炖梨的前世今生
花莲慈济医院专家推荐:中医养肺小妙招
《玛纳斯》:东方的“荷马史诗”
《玛纳斯》:柯尔克孜族的英雄传奇
可理解输入:快速学习语言的最佳方法
秋冬嗓子有痰?试试这5种天然食物!
秋冬嗓子有痰?可能是这三种原因在作怪!
跟着徐霞客的脚步,重走黄山古道
白运章包子:百年传承的保定美食传奇
一条老街折射古城之变
什么是股票的板块轮动?如何抓住板块轮动的机会?
低位单峰密集:股市新宠儿?
筹码低位单峰密集:企业投资新宠儿
浙大妇院专家详解:孕期营养管理的正确打开方式