您好,欢迎来到爱问旅游网。
搜索
您的当前位置:首页编译原理第五章答案.

编译原理第五章答案.

来源:爱问旅游网


第5章 自顶向下语法分析方法

第1题

对文法G[S]

S→a||(T)∧

T→T,S|S

(1) 给出(a,(a,a))和(((a,a),,(a)),a)∧的最左推导。

(2) 对文法G,进行改写,然后对每个非终结符写出不带回溯的递归子程序。

(3) 经改写后的文法是否是LL(1)的?给出它的预测分析表。

(4) 给出输入串(a,a)#的分析过程,并说明该串是否为G的句子。

答案:

也可由预测分析表中无多重入口判定文法是LL(1)的。

可见输入串(a,a)#是文法的句子。

第3题

已知文法G[S]:

S→MH|a

H→LSo|ε

K→dML|ε

L→eHf

M→K|bLM

判断G是否是LL(1)文法,如果是,构造LL(1)分析表。

第7题

对于一个文法若消除了左递归,提取了左公共因子后是否一定为LL(1)文法?试对下面文法进行改写,并对改写后的文法进行判断。

(1)A→baB|ε

B→Abb|a

(2) A→aABe|a

B→Bb|d

(3) S→Aa|b

A→SB

B→ab

答案:

(1)先改写文法为:

0) A→baB

1) A→ε

2) B→baBbb

3) B→bb

4) B→a

再改写文法为:

0) A→baB

1) A→ε

2) B→bN

3) B→a

4) N→aBbb

5) N→b

(2) 文法: A→aABe|a B→Bb|d

提取左公共因子和消除左递归后文法变为:

0) A→a N

1) N→A B e

2) N→ε

3) B→d N1

4) N1→b N1

5) N1→ε

(3)文法: S→Aa|b A→SB B→ab

第1种改写:

用A的产生式右部代替S的产生式右部的A得:

S→SBa|b B→ab

消除左递归后文法变为:

0) S→b N

1) N→B a N

2) N→ε

3) B→a b

也可由预测分析表中无多重入口判定文法是LL(1)的。

第2种改写:

用S的产生式右部代替A的产生式右部的S得:

S→Aa|b A→AaB|bB B→ab

消除左递归后文法变为:

0) S→A a

1) S→b

2) A→b B N

3) N→a B N

4) N→ε

5) B→a b

预测分析表:

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务