- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
作业解答第章
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)分析表。
解:
FOLLOW(A)=First(B)∪{#}={b,#}
FOLLOW(B)={e,b}
该文法中的规则B::=Bb|b为左递归,因此该文法不是LL(1)文法
先消除文法的左递归(转成右递归),文法变为: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
您可能关注的文档
最近下载
- 2024海南屯昌县总工会社会化工会工作者招聘3人 (第1号)笔试备考试题及答案解析.docx VIP
- 三年级数学上册人教版53全优卷.pdf
- (高清版)B-T 16886.11-2021 医疗器械生物学评价 第11部分:全身毒性试验.pdf VIP
- 水电站电气一次设计.docx VIP
- ICU患者血糖的管理.ppt VIP
- 光伏+储能 收益率最高的装机、储能测算.xls VIP
- 黑龙江省哈尔滨市巴彦县第一中学2022-2023学年七年级上学期期中考试语文试题(含答案).docx VIP
- 创新文物改编游戏企划书.pptx VIP
- 海尼曼 Fountas & Pinnell 有声绘本-英语入门066 The New Roof.pdf VIP
- 2021.4助理全科基层基地教学管理1.pptx VIP
文档评论(0)