词法分析 | 分析树和二义性文法
创作时间:
作者:
@小白创作中心
词法分析 | 分析树和二义性文法
引用
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
热门推荐
用Photoshop打造个性壁纸,你get了吗?
11个“世界美食之都”的城市代表齐聚顺德,擦亮“寻味顺德”城市IP
老妈做了半辈子的青团配方!隔夜不硬不裂,附自制红豆沙做法~
阿尔茨海默症的药物治疗方案
太阳高度角:揭示太阳在天空中的位置
方颅会影响智力发育吗
如何解决狗狗泪痕问题?专家建议的五个方法
元宵DIY大赛,谁家元宵最出圈?
元宵节吃元宵的正确姿势:从选购到食用全攻略
幼鸽饲养管理八大要点推荐
冬季幼鸽鸽痘防治全攻略
幼鸽科学喂养,冠军鸽的秘密!
高强度钢材焊接迎来技术革新:从激光焊接到PosZET®GIGA
船舶行业铸钢焊接新突破:3Y低氢焊材+精确预热温度控制
不惧岁月和风霜,用积极的人生态度活出自
个性化壁纸:你的居家治愈神器?
个性化定制壁纸:打造你的专属家居空间
三省六部指的是哪些机构,怎么发展来的,各有什么职能
三公九卿变成三省六部以后,九卿和六部有什么区别?
三省六部制在古代的发展与改革对于封建统治者的影响
甘肃文县:白马人的元宵狂欢
上海气象博物馆揭秘:雨的秘密你了解多少?
雨水储存如何影响水质安全?
如何在对话中保持尊重?非暴力沟通的4个核心法则
重大突破!阿尔茨海默病新研究颠覆传统认知
脑脊液生物标志物检测可更早发现阿尔茨海默病病理
圣索菲亚大教堂:君士坦丁堡的历史瑰宝
君士坦丁大帝:如何改变君士坦丁堡的宗教命运?
伊斯坦布尔:历史与现代交融的魅力之城
微信购物被骗怎么办?这份维权指南请收好