蒋立源编译原理第三版第四章-习题与答案1.pdf

蒋立源编译原理第三版第四章-习题与答案1.pdf

第 4 章 习题 1 4-1 消除下列文法的左递归性。 (1) S→SA|A A→SB|B|(S)|( ) B→[S]|[ ] (2) S→AS|b A→SA|a (3) S→(T)|a|ε T→S|T,S 4-2 对于如下文法,求各候选式的 FIRST 集和各非终结符号的 FOLLOW 集。 S→aAB|bA|ε A→aAb|ε B→bB|ε 4-3 验证下列文法是否为 LL(1)文法。 (1) S→AB|CDa A→ab|c B→dE|ε C→eC|ε D→fD|f E→dE|ε (2) S→aABbCD|ε A→ASd|ε B→SAc|eC|ε C→Sf|Cg|ε D→aBD|ε 4-4 对于如下的文法 G[S] : S→Sb|Ab|b A→Aa|a (1) 构造一个 G 等价的 LL(1)文法 G′[S] ; (2) 对于 G′[S],构造相应的 LL(1)分析表; (3) 利用 LL(1)分析法判断符号串 aabb 是否是文法 G[S]的合法句 子。 4-5 设已给文法 S→SaB|bB A→S|a B→Ac (1) 构造一个 G 等价的 LL(1)文法 G′[S] ; (2) 对于 G′[S],构造相应的 LL(1)分析表; (3) 利用 LL(1)分析法判断符号串 bacabc 是否是文法 G[S]的合法 句子。 第 4 章 习题答案 4-1 解: (1) 文法 G[S] 中的 S,A 都是 间接左递归的非终结符号。将 A 产 生式的右部代入产生式 S→A 中,得到与原文法等价的文法 G′[S] : S→SA|SB|B|(S)|( ) A→SB|B|(S)|( ) B→[S]|[ ] 文法 G′[S] 中的 S 是直接左递归的非终结符号,则消除 S 产生式 的直接递归性后,我们便得到了与原文法等价且无任何左递归性的文 法 G[S] : S→BS′|(S)S′|( )S′ S′→AS′|BS′|ε A→SB|B|(S)|( ) B→[S]|[ ] (2) 文法 G[S] 中的 S,A 都是 间接左递归的非终结符号。将 A 产 生式代入产生式 S→AS 中,得到与原文法等价的文法 G′[S] : S→SAS|aS|b A→SA|a 文法 G′[S] 中的 S 是直接左递归的非终结符号,则消除 S 产生式 的直接递归性后,我们便得到了与原文法等价且无任何左递归性的文 法 G[S] : S→aSS′|bS′ S′→ASS′|ε A→SA|a (3) 文法 G[S] 中的 T 是直接左递归的非终结符号。则消除 T 产生 式的直接递归性后,我们便得到了与原文法等价且无任何左递归性的 文法 G′[S] : S→(T)|a|ε T→ST′ T′→,ST′|ε 4-2 解: 文法 G[S]的各候选式的FIRST 集和各非终结符号的 FOLLOW 集 如答案表 4-2 所示。 答案表 4-2 文法 G[S]的各个 FIRST 集和 FOLLOW 集 产 生 式

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档