词法分析 | 分析树和二义性文法
创作时间:
作者:
@小白创作中心
词法分析 | 分析树和二义性文法
引用
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
热门推荐
移民美国后的社交生活指南:如何在异国他乡建立属于自己的社交圈
筷子是怎么演变而来的?在古代筷子有什么象征意义?
蚕蛹的营养价值 超出你的想象
权威研究:人去世前10年,身体就已发出预警信号
如何在需求流程中使用AI
汕尾几月份去最美?汕尾最佳旅游季节是几月份?
诚字的五行属性名字寓意
《剑来》:何为纯粹武夫?
北京仲裁委员会/北京国际仲裁院更名完成,助力国际商事仲裁中心建设
情侣吵架原因分析及应对方法(感情如何维系)
Excel中停车收费金额的计算方法详解
刷社交媒体净是碎片化信息,如何重拾深度思考与价值探寻
无声的流动:《Flow》动画电影深度解析
暑期游火爆、“小城”融入“大网” 高铁成环带动“轨道上的长三角”高质量发展
达尔文进化论:质疑与科学回应
腿部经络按摩手法步骤
Go-Context底层原理剖析
大厨分享最好吃的炸鱼方法,表皮酥脆鱼肉鲜嫩,上桌就吃光,真香
宽脸无痛缩窄!减少面部留白技巧,延伸眉尾眼线是重点,脸型变窄变立体、更饱满精致
深圳9大适合看夜景的好去处!(第一弹)
夷陵之战:蜀汉的损失到底有多严重?
红参纳入食品原料,撬动“轻养生”市场新风口?
“明星”营养物质:吡咯喹啉醌(PQQ),硬实力在哪?
江南温情记忆:一碗鸭血粉丝汤的味蕾之旅
王者荣耀:牢戬虽强但操作难度大,这四个英雄简单又强势!
美国生物统计(Biostatistics)硕士项目介绍与申请注意事项
JS如何获取法定假日
合成生物学与医学最新万字综述
生姜:上火还是降火?真相在此
2025年应用统计专业硕士考情分析:从院校排名到就业前景全方位解读