编译原理-龙书-第二版-第4章.doc

编译原理-龙书-第二版-第4章.doc

ID:57381035

大小:185.00 KB

页数:8页

时间:2020-08-14

编译原理-龙书-第二版-第4章.doc_第1页
编译原理-龙书-第二版-第4章.doc_第2页
编译原理-龙书-第二版-第4章.doc_第3页
编译原理-龙书-第二版-第4章.doc_第4页
编译原理-龙书-第二版-第4章.doc_第5页
资源描述:

《编译原理-龙书-第二版-第4章.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第四章习题4.2.1:考虑上下文无关文法:S->SS+

2、SS*

3、a以及串aa+a*(1)给出这个串的一个最左推导S->SS*->SS+S*->aS+S*->aa+S*->aa+a*(3)给出这个串的一棵语法分析树习题4.3.1:下面是一个只包含符号a和b的正则表达式的文法。它使用+替代表示并运算的符号

4、,以避免和文法中作为元符号使用的竖线相混淆:rexpràrexpr+rterm

5、rtermrtermàrtermrfactor

6、rfactorrfactoràrfactor*

7、rprimaryrprimaryàa

8、b1)对这个文法提

9、取公因子2)提取公因子的变换使这个文法适用于自顶向下的语法分析技术吗?3)提取公因子之后,原文法中消除左递归4)得到的文法适用于自顶向下的语法分析吗?解1)提取左公因子之后的文法变为rexpràrexpr+rterm

10、rtermrtermàrtermrfactor

11、rfactorrfactoràrfactor*

12、rprimaryrprimaryàa

13、b2)不可以,文法中存在左递归,而自顶向下技术不适合左递归文法3)消除左递归后的文法rexpr->rtermrexpr’rexpr’->+rtermrexpr’

14、rterm->rfac

15、torrterm’rterm’->rfactorrterm’

16、rfactor->rprimayrfactor’rfactor’->*rfactor’

17、rprimary->a

18、b4)该文法无左递归,适合于自顶向下的语法分析习题4.4.1:为下面的每一个文法设计一个预测分析器,并给出预测分析表。可能要先对文法进行提取左公因子或消除左递归(3)S->S(S)S

19、(5)S->(L)

20、aL->L,S

21、S解(3)①消除该文法的左递归后得到文法S->S’S’->(S)SS’

22、用类Pascal语言构造的一个预测分析器:PROCEDURES    

23、 BEGIN       S;       WHILE(lookahead==’(')       THENBEGIN           match('(');           S;           match(')');         END;       ELSEIF(lookahead=='a')           THENmatch('a')           ELSEerror     END;②计算FIRST和FOLLOW集合FIRST(S)={(,}FOLLOW(S)={),$}FIRST(S’)={

24、(,}FOLLOW(S’)={),$}③构建预测分析表非终结符号输入符号()$SS->S’S->S’S->S’S’S’->(S)SS’S’->S’->(5)①消除该文法的左递归得到文法S->(L)

25、aL->SL’L’->,SL’

26、用类Pascal语言的一个预测分析器:   PROCEDURES     BEGIN       if(lookahead==’(')       THENBEGIN           match('(');           L;           match(')');         END;

27、       ELSEIF(lookahead=='a')           THENmatch('a')           ELSEerror     END;   PROCEDUREL;     BEGIN       S;       WHILE(lookahead==',');         BEGIN           match(',');           S;         END;     END;②计算FIRST与FOLLOW集合FIRST(S)={(,a}FOLLOW(S)={),,,$}FIRS

28、T(L)={(,a}FOLLOW(L)={)}FIRST(L’)={,,}FOLLOW(L’)={)}③构建预测分析表非终结符号输入符号(),a$SS->(L)S->aLL->SL’L->SL’L’L’->L’->,SL’习题4.4.4计算练习4.2.2的文法的FIRST和FOLLOW集合3)SàS(S)S

29、5)Sà(L)

30、a,LàL,S

31、S解:3)FIRST(S)={,(}FOLLOW(S)={(,),$}5)FIRST(S)={(,a}FOLLOW(S)={),,,$}FIRST(L)={(,a}FOLLOW(L)={),,}

32、习题4.6.2为练习4.2.1中的增广文法构造SLR项集,计算这些项集的GOTO函数,给出这个文法的语法分析表。这个文法是SLR文法吗?SàSS+

33、SS*

34、a解:①构造该文法的增广文法如下S’->SS->SS+S->SS*S->a②构造该文法的LR

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

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

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