上下文无关文法与上下文有关文法的区别

       思考了很久上下文无关文法的名称含义。其实重点区别就在于产生式左侧。上下文无关文法强调左侧只可以为一个非终结符,也就意味着读入字符串后,只要当前字符与产生式相匹配时,就可以进行替换;而上下文有关文法则需要满足产生式左侧的所有部分才可以,不能直接对单个非终结符进行替换。

上下文无关文法:

//产生式
A->baa  
S->aAc  //无需考虑A前后是a还是b再进行替换,直接读到A开始即可

//推导
S=>aAc
 =>abaac

上下文有关文法:

//产生式
aAc->aab
S->aAcd//非终结符A左右两侧(即上下文)符合产生式,可以进行替换
B->bA//A上下文不符合,不可以替换

//推导
S=>aAcd
 =>aaabcd

       所以通俗的来讲,上下文有关文法允许多个终结符和非终结符出现在左侧(左侧存在多个符号);而上下文无关文法左侧仅可以出现一个非终结符,相较于1型文法,2型限制条件更多了。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值