编译原理之文法的分类和判别

本文介绍了Chomsky文法的四种分类,包括0型、1型、2型和3型(右线性/左线性/正规文法),并提供了文法判别的方法和技巧。通过具体例子解释了如何根据文法规则确定其类型,例如L1、L2和L3语言的文法构造和类型识别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.文法的分类

Chomsky文法分类将文法分为四种,逐渐对产生式施加限制形成一个层次:

  • 0型:G = (VT , VN , S , P)
    规则形式:α → β ,α,β∈(VT , VN) *,α ≠ ε
    推导:γαδ ⇒ γβδ

  • 1型(上下文有关):规则α → β 有|α|≤|β|
    规则形式:ξAη→ξγη,A ∈ VN,ξ , γ , η ∈(VT , VN) * , γ ≠ ε

  • 2型(上下文无关)
    规则形式:A → β , A∈VN , β ∈(VT , VN) *

  • 3型(右线性/左线性/正规文法)
    A → aB或者A → a(右线性)
    A → Ba或者A → a(左线性)
    a∈ VT∪{ε}

这里写图片描述

2.文法的判别
判别小技巧:

从上图我们可以看出,四种文法中,从0型到3型,其规则和约定越来越多,限制条件也越来越多,所以,我们可以从最复杂的3型进行判断,如果不符合3型的,那再看是不是2型的,不是2型的,再看是不是1型的,依次向下判断,最后答案取其最高的符合规则。

  • 3型文法遵循的规范是:
  1. 判别式的左边必须只有一个字符,且必须是非终结符;
  2. 判别式的右边最
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值