XJTUSE-编译原理-第四章-homework

第一题

问题描述

第一问

将文法 G[S]改写为不含左递归:

T→hiTT'

T'→oPT'|ε

改成公共左因子:

S→PuTS'

S'→in|ε

综上所述,得文法 G'[S]:

S→PuTS'

S'→in|ε

T→hiTT'

T'→oPT'|ε

P→union

第二问

只有S→PuTS'需要 P 的 First 集,剩下的非终结符可以得到:

非终结符

First 集

S'

{i,ε}

P

{u}

T

{h}

T'

{o,ε}

然后,可以得到 S 的 First 集

非终结符

First 集

S

{u}

然后,计算非终结符的 Follow 集合:

  1. 首先将#放入 S 的 Follow 集中,查看S→PuTS'
  2. #加入 S‘的 Follow 集合
  3. i,#加入 T 的 Follow 集合
  4. u 加入 P 的 Follow 集合
  5. 查看T→hiTT'
  6. 将 T’的 First 集合的终结符(o)加入 T 的 Follow 集合
  7. i,o,#加入 T’的 Follow 集合
  8. 查看T'→oPT'|ε
  9. o 加入 P 的 Follow 集合
  10. i,#加入 P 的 Follow 集合
  11. 发现任何非终结符的 Follow 集不再增加,结束!

非终结符

Follow 集

S

{#}

S'

{#}

P

{i,o,u,#}

T

{i,o,#}

T'

{i,o,#}

综上所述:

非终结符

First 集

Follow 集

S

{u}

{#}

S'

{i,ε}

{#}

P

{u}

{i,o,u,#}

T

{h}

{i,o,#}

T'

{o,ε}

{i,o,#}

第三问

由文法得预测分析表如下:

h

i

n

o

u

#

S

S→PuTS'

S'

S'→in

S'→ε

P

P→union

T

T→hiTT'

T'

T'→ε

T'→ε

T'→oPT'

T'→ε

第四问

预测分析表中 M[T',o]存在多重定义入口,不满足 LL(1)文法


第二题

问题描述

第一问

将文法 G[S]改写成不含左递归:

N→aSSN'

N'→atoN'

提取公共左因子:

S→NoWS'

S'→ar|ε

综上,G[S']文法为:

N→aSSN'

N'→atoN'

S→NoWS'

S'→ar|ε

W→SiN

第二问

做法与第一题相似,不再展开。

非终结符

First 集

S

{a}

S'

{a,ε}

N

{a}

N'

{a,ε}

W

{a}

求 Follow 集合步骤如下:

  1. 首先将#放入 S 的 Follow 集中,查看S→NoWS'
  2. #加入 S'的 Follow 集合
  3. a,#加入 W 的 Follow 集合
  4. o 加入 N 的 Follow 集合
  5. 查看N→aSSN'
  6. a 加入 S 的 Follow 集合
  7. o 加入 N‘的 Follow 集合
  8. 查看W→SiN
  9. i 加入 S 的 Follow 集合
  10. a,#加入 N 的 Follow 集合
  11. 查看S→NoWS'
  12. a,i 加入 S’的 Follow 集合
  13. a,i 加入 W 的 Follow 集合
  14. 查看N→aSSN'
  15. o 加入 S 的 Follow 集合
  16. a,o,#加入 N’的 Follow 集合
  17. 查看S→NoWS'
  18. o 加入 S’的 Follow 集合
  19. o 加入 W 的 Follow 集合
  20. 查看W→SiN
  21. i 加入 N 的 Follow 集合
  22. 查看N→aSSN'
  23. i 加入 N‘的 Follow 集合
  24. 不再添加,算法结束

非终结符

First 集

Follow 集

S

{a}

{a,i,o,#}

S'

{a,ε}

{a,i,o,#}

N

{a}

{a,i,o,#}

N'

{a,ε}

{a,i,o,#}

W

{a}

{a,i,o,#}

第三问

N→aSSN'

N'→atoN'

S→NoWS'

S'→ar|ε

W→SiN

a

i

o

r

t

#

S

S→NoWS'

S'

S'→ar

S'→ε

S'→ε

S'→ε

S'→ε

N

N→aSSN'

N'

N'→atoN'

N'→ε

N'→ε

N'→ε

N'→ε

W

W→SiN

第四问

预测分析表中 M[S',a],M[N',a]存在多重定义入口,不满足 LL(1)文法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值