编译原理笔记 - 文法知识

文章转自:https://zh.wikipedia.org/wiki/乔姆斯基谱系



乔姆斯基体系的四个层次

乔姆斯基体系是计算机科学中刻画形式文法表达能力的一个分类谱系,是由语言学家诺姆·乔姆斯基于1956年提出的。它包括四个层次:


0-型文法(无限制文法或短语结构文法)包括所有的文法。该类型的文法能够产生所有可被图灵机识别的语言。可被图灵机识别的语言是指能够使图灵机停机的字符串,这类语言又被称为递归可枚举语言。注意递归可枚举语言与递归语言的区别,后者是前者的一个真子集,是能够被一个总停机的图灵机判定的语言。
1-型文法(上下文相关文法)生成上下文相关语言。这种文法的产生式规则取如 αAβ -> αγβ 一样的形式。这里的A 是非终结符号,而 α, β 和 γ 是包含非终结符号与终结符号的字符串;α, β 可以是空串,但 γ 必须不能是空串;这种文法也可以包含规则 S->ε ,但此时文法的任何产生式规则都不能在右侧包含 S 。这种文法规定的语言可以被线性有界非确定图灵机接受。
2-型文法(上下文无关文法)生成上下文无关语言。这种文法的产生式规则取如 A -> γ 一样的形式。这里的A 是非终结符号,γ 是包含非终结符号与终结符号的字符串。这种文法规定的语言可以被非确定下推自动机接受。上下文无关语言为大多数程序设计语言的语法提供了理论基础。
3-型文法(正规文法)生成正则语言。这种文法要求产生式的左侧只能包含一个非终结符号,产生式的右侧只能是空串、一个终结符号或者一个终结符号后随一个非终结符号;如果所有产生式的右侧都不含初始符号 S ,规则 S -> ε 也允许出现。这种文法规定的语言可以被有限状态自动机接受,也可以通过正则表达式来获得。正则语言通常用来定义检索模式或者程序设计语言中的词法结构。

四种语言类的包含关系
  1. 正则语言类包含于上下文无关语言类,
  2. 上下文无关语言类包含于上下文相关语言类,
  3. 上下文相关语言类包含于递归可枚举语言类。
    .
    这里的包含都是集合的真包含关系,也就是说:存在递归可枚举语言不属于上下文相关语言类,存在上下文相关语言不属于上下文无关语言类,存在上下文无关语言不属于正则语言类。
图片名称

主要特点

下表总结了上述四种类型的文法的主要特点:

文法语言自动机产生式规则中文解释
0-型递归可枚举语言图灵机α -> β(无限制)a->b 产生式左边a至少含有一个非终结符
1-型上下文相关语言线性有界非确定图灵机αAβ -> αγβ在0型基础上,a->b 产生式右侧的长度越来越长。
2-型上下文无关语言非确定下推自动机A -> γ在1型基础上,a->b左侧为一个非终结符。
3-型正则语言有限状态自动机A -> aB A -> a在2型基础上,a->b 右侧的形式为:A->cB 或A->c (仅此两种形式)AB为非终结符
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值