【编译原理】第四章作业

第四章作业

1
2
3

4.2.1

  1. SSSSS+SaS+Saa+Saa+a
  2. SSSSaSS+aSa+aaa+a
  3. 如下图
    4 2 1
  4. 所有的后缀表达式的集合组成的加法和乘法

4.4.1

(5) S(L)|a 以及 LL,S|S

  1. 提取左公因子(无)
  2. 消除左递归(仅有 LL,S|S 这一处立即左递归)

    S(L)|a
    LSL
    L,SL|ϵ

  3. 计算First和Follow

    First(S)  = { ( , a }
    First(L)  = { ( , a }
    First(L') = { ,, ε }
    Follow(S) = { $ , ,, ) }
    Follow(L) = { ) }
    Follow(L')= { ) }

最终得到预测分析表:

非终结符号输入符号
(),a$
S S(L) Sa
S LSL LSL
L’ Lϵ L,SL

4.4.2

  • 提取左公因子

    SSSA|a
    A+|

  • 消除左递归

    i = 1    
        S -> aB
        B -> SAB | ε
        A -> + | *
    i = 2
        j = 1
            S -> aB
            B -> aBAB | ε
            A -> + | *
  • 预测分析表
非终结符号输入符号
+*a$
SS -> aB
AA -> +A -> *
BB -> εB -> εB -> aBABB -> ε

4.4.3

  • First(S)={a}
  • (Follow(S) = {a, +, *, $} )

4.4.5

  1. 对于这个带回溯的递归下降分析器,
    它每一次发现错误后回溯所消去的a的数量为2,4,8…..
    2n ,那么只有在a的个数为 {a2n|n1} 时,
    假设为k,则他的预测a的个数为 2k2i,i=1,2,3... ,
    当i等于k-1时匹配成功。
    而对于六来说,只有3才能匹配,但是他不会经历这个情况。
  2. 他识别 {a2n|n1} 的情况

4.5.2

S -> SS+ -> Sa+ -> SS*a+ ->Sa*a+ -> SS+a*a+
因此句柄为SS+

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值