编译原理-文法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/liuyubibn/article/details/82320441

文法

大写表示非终结符
小写 终结符

0型文法也称为短语文法:
一个非常重要的理论结果是,0型文法的能力相当于图灵机(Turing)。或者说,任何0型语言都是递归可枚举的;反之,递归可枚举集必定是一个0型语言。
对0型文法产生式的形式作某些限制,以给出1,2和3型文法的定义。
(注意)
文法G 定义为四元组(VN ,VT ,P,S)
¨VN :非终结符集
¨VT :终结符集
¨P :产生式集合(规则集合)
¨S :开始符号(识别符号)

1型文法(上下文有关文法context-sensitive):
  对任一产生式α→β,都有|β|>=|α|, 仅仅 S→ε除外
  产生式的形式描述:α1Aα2→α1βα2
  (其中,α1、α2、β∈(VN∪VT)*,β≠ε,A∈VN)
  即:A只有出现在α1α2的上下文中,才允许用β替换。
  产生的语言称“上下文有关语言”

  例如:0A0→011000 1A1→101011

2型文法(上下文无关文法):
对任一产生式α→β,都有α∈VN,β∈(VN∪VT)
  产生式的形式描述:A→β(A∈VN)
  即β取代A时,与A所处的上下文无关。
  产生的语言称“上下文无关语言”
  例如:G[S]:S→01 S→0S1

3型文法(RG):也称正规文法
  每个产生式均为 “A→aB”或“A→a” —— 右线性
   “A→Ba”或“A→a” —— 左线性
  其中,A、B∈VN,a∈VT*
  产生的语言称“正规语言”
  例如:G[S]: S→0A | 0
  A→1B | B
  B→1 | 0

4个文法类的定义是逐渐增加限制的,因此每一种正规文法都是上下文无关的,每一种上下文无关文法都是上下文有关的,而每一种上下文有关文法都是0型文法。

  四种文法之间的关系是:包含关系.(原因:将产生式做进一步限制而定义的。

这里写图片描述

猜你喜欢

转载自blog.csdn.net/liuyubibn/article/details/82320441