- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
作业解答第4章
4.1 对下面文法,设计递归下降分析程序。
S→aAS|(A) , A→Ab|c
解:首先将左递归去掉,将规则A→Ab|c 改成 A→c{b}
非终结符号S的分析程序如下:
非终结符号A的分析程序如下:
4.2 设有文法G[Z]:
Z∷=(A) , A∷=a|Bb , B∷=Aab
若采用递归下降分析方法,对此文法来说,在分析过程中,能否避免回溯?为什么?
解:若采用递归下降分析方法,对此文法来说,在分析过程中不能避免回朔。因为规则A∷=a|Bb和规则B∷=Aab构成了间接左递归,不满足实现没有回溯的递归下降分析方法的条件(1)(书P67),且规则 A: := a|Bb,FIRST(a)={a},FIRST(Bb)={a},即此规则候选式的首符号集有相交,不满足实现没有回溯的递归下降分析方法的条件(2)(书P67),在分析过程中,将造成回溯。
改写文法可避免回溯:
将规则B∷=Aab代入规则A∷=a|Bb得:A∷=a|Aabb,再转换成:A∷=a{abb},可避免回溯。
4.3 若有文法如下,设计递归下降分析程序。
语句→语句赋值语句|ε
赋值语句→ID=表达式
表达式→项|表达式+项|表达式-项
项→因子|项*因子|项/因子
因子→ID|NUM|(表达式)
解:首先,去掉左递归
语句→语句赋值语句|ε改为: 语句→{赋值语句}
表达式→项 | 表达式 + 项 | 表达式 - 项 改为:
表达式→项{(+ | -)项}
项→因子 | 项 * 因子 | 项 / 因子 改为:
项→因子{(* | /)因子}
则文法变为:
语句→{赋值语句}
赋值语句→ID=表达式
表达式→项{(+ | -)项}
项→因子{(* | /)因子}
因子→ID|NUM|(表达式)
非终结符号 语句 的分析程序如下:
非终结符号 赋值语句 的分析程序如下:
非终结符号 表达式 的分析程序如下:
非终结符号 项 的分析程序如下:
非终结符号 因子 的分析程序如下:
4.4 有文法G[A]:A::=aABe|ε,B::=Bb|b
(1)求每个非终结符号的FOLLOW集。
(2)该文法是LL(1)文法吗?
(3)构造LL(1)分析表。
解:
(1) FOLLOW(A)=First(B)∪{#}={b,#}
FOLLOW(B)={e,b}
(2) 该文法中的规则B::=Bb|b为左递归,因此该文法不是LL(1)文法
(3) 先消除文法的左递归(转成右递归),文法变为:A::=aABe|ε,B::=bB’,B’=bB’|ε,该文法的LL(1)分析表为:
a
e
b
#
A
POP ,
PUSH(eBAa)
POP
POP
B
POP ,
PUSH(B’b)
B’
POP
POP ,
PUSH(B’b)
a
POP,
NEXTSYM
e
POP,
NEXTSYM
b
POP,
NEXTSYM
#
ACCEPT
更常用且简单的LL(1)分析表:
a
e
b
#
A
A→aABe
A→ε
A→ε
B
B→bB’
B’
B’→ε
B’→bB’
4.5 若有文法A→(A)A|ε
(1)为非终结符A构造FIRST集合和FOLLOW集合。
(2)说明该文法是LL(1)的文法。
解:
(1)FIRST(A)={(, ε}
FOLLOW(A)={),#}
(2)
该文法不含左递归;
FIRST((A)A)={(},FIRST(ε)={ε},FIRST((A)A)∩FIRST(ε)=Φ,
且FOLLOW(A)={),#},FIRST((A)A)∩ FOLLOW(A) =Φ,
因此,该文法满足LL(1)文法的条件,是LL(1)文法。
4.6 利用分析表4-1,识别以下算术表达式,请写出分析过程。
(1)i+i*i+i
(2)i*(i+i+i)
解:
(1)i+i*i+i
步骤
分析栈
余留输入串
分析表元素
所用产生式
1
#E
i+i*i+i#
POP,PUSH(E’T)
E→TE’
2
#E’T
i+i*i+i#
POP,PUSH(T’F)
T→FT’
3
#E’T’F
i+i*i+i#
POP,PUSH(i)
F→i
4
#E’T’i
i+i*i+i#
POP,NEXTSYM
5
#E’T’
+i*i+i#
POP
T’→ε
6
#E’
+i*i+i#
POP,PUSH(E’T+)
E’→+TE’
7
#E’T+
+i*i+i#
POP,NEXTSYM
8
#E’T
i*i+i#
POP,PUSH(T’F)
T→FT’
9
#E’T’F
i*i+i#
POP,PUSH(i)
F→i
10
#E’T’i
i*i+i#
PO
您可能关注的文档
最近下载
- 吞咽障碍护理的ppt课件.pptx VIP
- PROTEUS-V8中文版介绍.ppt VIP
- 精准落实语文要素五策略 .pdf VIP
- 《第一单元 100以内数加与减(二)——图书角》教学设计-2024-2025学年二年级上册数学北师大版.docx VIP
- 中枢神经系统感染护理查房.ppt VIP
- 标准图集-20S515-钢筋混凝土及砖砌排水检查井.pdf VIP
- 规范、标准整理:TCSUS 17-2021 古道保护利用规划编制导则--------工程交流群加vx:gqq5616.pdf VIP
- 在2024年全市第四季度“12345”热线不满意工单分析研判会上的主持词.docx VIP
- 云南省重大项目办公室 云南省各地州市2015年重大建设项目.doc VIP
- 评标专家评标流程.pdf VIP
文档评论(0)