手机版

编译原理(陈火旺第三版)练习答案(9)

时间:2025-04-30   来源:未知    
字号:

编译原理(陈火旺第三版)练习答案

Procedure T';

Begin if sym = ‘(‘ or sym = ‘a’ or sym = ‘b’ or sym = ‘ ’ Then begin T;

Else if sym = ‘*’ then error

End

Procedure F; Begin

if sym = ‘(‘ or sym = ‘a’ or sym = ‘b’ or sym = ‘ ’ Then begin P;F' end

Else error End

Procedure F' Begin

If sym = ‘*’

Then begin advance ; F' end End

Procedure P; Begin

If sym = ‘a’ or sym = ‘b’ or sym = ‘ ’

Then advance

Else if sym = ‘(‘ then Begin advance; E ;

If sym = ‘)’ then advance Else error End

Else error end P81-3 解答:(1)该文法不含左递归,计算First集合和Follow集合

Fisrt(S) = {a,b,c} First(A) = {a,ε} First(B)= {b,ε} Follow(S)={#} Follow(A)={b,c} Follow(B) = {c} 满足LL(1)文法的3个条件,所以是LL(1)文法; (2)该文法不含左递归,计算First集合和Follow集合

Fisrt(S) = {a,b} First(A) = {a,b,ε} First(B)= {b,ε} Follow(S)={#} Follow(A)={b} Follow(B) = {b}

考虑A→a|B|ε,Fisrt(A)中含有ε,而Fisrt(A)∩Follow(A)={b},所以不是LL(1)文法; (3)该文法不含左递归,计算First集合和Follow集合

Fisrt(S) = {a,b,ε} First(A) = {a,ε} First(B)= {b,ε} Follow(S)={#} Follow(A)={a,b,#} Follow(B) = {a,b,#}

考虑A→a|ε,Fisrt(A)中含有ε,而Fisrt(A)∩Follow(A)={a},所以不是LL(1)文法; (4)是LL(1)文法

编译原理(陈火旺第三版)练习答案(9).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)