【编译原理】文法

193 阅读1分钟

1. 终结符&非终结符

类型表示符号
非终结符大写字母表示ABCD
终结符小写字母表示abcd
关系非终结符可以推导出终结符A->a

2.文法类型

    • 在这里插入图片描述
    • —VN——非终结符的集合
      —VT——终结符的集合
      —P ——推导式子集合
      —S ——开始符

0型文法

    • 特点:
    • α->β
      α至少含有一个非终结符∈VN
      α,β∈ ( VN ∪ VT )*
    • 例:
    • A->a √
      Aa->aB √
      ab->A × 因为α=ab,其中不含有非终结符

1型文法

——又称上下文有关文法

    • 特点:
    • α->β——满足0型文法的基础上
      |β|>=|α|——|β|、|α|表示α和β的 长度
    • 例:
    • A->Bab √
      Aa->B × 因为Aa长度为2,B长度为1,不满足|β|>=|α|

2型文法

——上下文无关文法

    • 特点:
    • α->β,|β|>=|α|——满足1型文法
      α是 一个非终结符
    • 例:
    • A->aB √
      aB->abC × 因为aB 不是 一个非终结符

3型文法

——正规文法

    • 特点:
    • α->β,|β|>=|α|, α是 一个非终结符——满足2型文法
      A->a|aB(右线性) A->a|Ba(左线性)
    • 例:
    • A->a, A->aB, B->a, B->cB √ 3型文法 右线性
      A->a, A->Ba, B->a, B->cB × A->Ba(左线性)B->cB(右线性)左线性和右线性只能取其一

2.4 文法类型之间的关系

在这里插入图片描述

3. 正规式与正规文法的转换

    • 正规式
    • 正则表达式
      是一种表示正规集的公式
    • 规则:
    • .
规则文法产生式正规式
1A->xB、B->yA=xy
2A->xA/yA=x*y
3A->x、A->yA=x/y
    • 理解:
    • 对于正规式和正规文法之间的转换规则,不理解的话,画出推导树,结果就显而易见了。

有什么问题欢迎在下方评论,或前来与在下共商,愿与君共勉!