编译原理第四章-课后题

编译原理第四章-课后题

ID:6305563

大小:95.50 KB

页数:3页

时间:2018-01-09

编译原理第四章-课后题_第1页
编译原理第四章-课后题_第2页
编译原理第四章-课后题_第3页
资源描述:

《编译原理第四章-课后题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第四章1.1考虑下面文法G1S->a

2、^

3、(T)T->T,S

4、S消去G1的左递归。然后对每个非终结符,写出不带回溯的递归子程序。答::(1)消除左递归:S->a

5、^

6、(T)T->ST’T’->,ST’

7、ε(2)first(S)={a,^,(}first(T)={a,^,(}first(T’)={,ε}First(a)={a},First(^)={^},First((T))={(}S的所有候选的首符集不相交First(,ST’)={,},First(ε)={ε},T’的所有候选的首符集不相交Follow

8、(T’)=Follow(T)={)}first(T’)∩Follow(T’)={}所以改造后的文法为LL(1)文法。不带回溯的递归子程序如下:S(){if(lookahead=’a’)advance;Elseif(lookahead=’^’)advance;Elseif(lookahead=’(’){advance;T();if(lookahead=’)’)advance;elseerror();}Elseerror();}T(){S();T’():}T’->,ST’

9、εT’(){if(lookahe

10、ad=’,’){advance;S();T’();}Elseif(lookahead=Follow(T’))advance;Elseerror;}3.3.下面文法是否是LL(1)文法,说明理由。S->ABBAA->a

11、εB->b

12、ε答:1.文法不含直接和间接左递归2.first(a)={a}∩first(ε)={ε}为{}first(b)={b}∩first(ε)={ε}为{}3.first(S)={a,b,ε}first(A)={a,ε}first(B)={b,ε}Follow(S)={#}foll

13、ow(A)={a,b,#}follow(B)={a,b,#}First(A)∩follow(A)不为空所以,不是LL(1)文法。4.对下面文法:Expr->-ExprExpr->(Expr)

14、VarExprTailExprTail->-Expr

15、εVar->idVarTailVarTail->(Expr)

16、ε(1)构造LL(1)分析表(2)给出句子id--id((id))的分析过程答:为书写方便,将文法写为:A->A

17、(A)

18、VBB->-A

19、εV->aDD->(A)

20、εFirst(A)={-(a}Fi

21、rst(B)={-ε}first(V)={a}first(D)={(ε}Follow(A)={#)}follow(B)={#)}follow(V)={#)-}follow(D)={#-)}LL(1)分析表如下:-(a)#AA->-AA->(A)A->VBBB->-AB->εB->εVV->aDDD->εD->(A)D->εD->ε句子id--id((id))即a--a((a))的分析过程如下:符号栈输入串所用产生式#Aa--a((a))##BVa--a((a))#A->VB#BDaa--a((a))#

22、V->aD#BD--a((a))##B--a((a))#D->ε#A---a((a))#B->-A#A-a((a))##A--a((a))#A->-A#Aa((a))##BVa((a))#A->VB#BDaa((a))#V->aD#BD((a))##B)A(((a))#D->(A)#B)A(a))##B))A((a))#A->(A)#B))Aa))##B))BVa))#A->VB#B))BDaa))#a))##B))BD))##B))B))#D->ε#B))))#B->ε#B))##B###B->ε

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。