编译原理(一) Chomsky文法

一、明确定义


  • 0型文法:对任一产生式α→β,都有α∈(VN∪VT)+, β∈(VN∪VT)*
  • 1型文法:对任一产生式α→β,都有|β|≥|α|, 仅仅 α→ε除外
  • 2型文法:对任一产生式α→β,都有α∈VN , β∈(VN∪VT)*
  • 3型文法:任一产生式α→β的形式都为A→aB或A→a,其中A∈VN,B∈VN,a∈VT。上述叫做右线性文法,另有左线性文法,二者等价。

二、基本思路


  • 0型文法
    • 首先字符串 α 的是 (VnVt)+ ,是全符号集的一个正闭包,那么包含符号集中所有符号的一个任一组合,但不包含 ε 元素。
    • 字符串 β 的是 (VnVt) ,是全符号集的一个闭包,那么它比 α 会多一个 ε 元素。
    • 那么我们想要判断一个文法是否为0型文法,只需要判断左侧非空即可
    • 任何0型语言都是递归可枚举的,故0型语言又称递归可枚举集
  • 1型文法
    • 首先1型文法必须是0型文法
    • 1型文法除了 αε 这一个特例外,其他情况都满足 β 的长度大于 α 的长度
    • 1型文法也叫作上下文相关文法
  • 2型文法
    • 首先2型文法必须是1型文法
    • 2型文法左边必须是一个非终结字符
    • 2型文法也叫做上下文无关文法
  • 3型文法
    • 首先3型文法必须是2型文法
    • 3型文法必须是线性文法
    • 也就是在A,B为非终结符,a是终结符的情况下,产生式只满足如下两种形式(如下为右线性的例子):
      • AaB
      • Aa
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值