【编译原理】作业三

编译原理 第三次作业

151220129 计科 吴政亿

4.4.1

无左公因子,消除左递归后得到:

  • bexpr bterm bexpr’
  • bexpr’ or bterm bexpr’ | ϵ ϵ
  • bterm bfactor bterm’
  • bterm’ and bfactor bterm’ | ϵ ϵ
  • bfactor not bfactor | (bexpr) | true | false

First(bexpr) = First(bterm) = First(bfactor) = {not,(,true,false}
First(bexpr’) = {or, ϵ ϵ }
First(bterm) = {and, ϵ ϵ }
Follow(bexpr) = Follow(bexpr’) = { ), }  
Follow(bterm) = Follow(bterm’) = { or,
}  Follow(bterm) = Follow(bterm’) = { or,
}
Follow(bfactor) = { and, $ }

预测分析表:

非终结符号输入符号
andornot()truefalse$
bexprbexpr -> bterm bexpr’bexpr -> bterm bexpr’bexpr -> bterm bexpr’bexpr -> bterm bexpr’
bexpr’bexpr’ -> or bterm bexpr’bexpr’ -> εbexpr’ -> ε
btermbterm -> bfactor bterm’bterm -> bfactor bterm’bterm -> bfactor bterm’bterm -> bfactor bterm’
bterm’bterm’ -> and bfactor bterm’bterm’ -> εbterm’ -> ε
bfactorbfactor -> not bfactorbfactor -> (bexpr) bfactor -> truebfactor -> false

4.4.4

  • First(S) = { (, ϵ ϵ }
  • FollowS(S) = { ), $ }

4.4.5

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

4.5.2

S S S +
S S S + +
S S a + +
S S S * a + +
          ⇒ S S a * a + +
S a a * a + +
a a a * a + +

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值