乔姆斯基把方法分成四种类型,即0型、1型、2型和3型,源于《编译原理》,但《软件设计师》教程对于该分类的介绍很简略,也很抽象,根据网上各类博客对其的解释和教程的说法,大致总结如下:

首先要阐明的是,一般的文法至少都是0型文法,也就是说0型文法限制最少,二1,2,3型文法都是在0型文法基础上加以限制形成。

若将0型文法比作基类的话,1,2,3,4就是不断继承并加以限制得到的子类。

①0型文法 
设G=(VN,VT,P,S),如果它的每个产生式α→β是这样一种结构:α∈(VN∪VT)且至少含有一个非终结符,而β∈(VN∪VT),则G是一个0型文法。0型文法也称短语文法。0型文法的能力相当于图灵机(Turing)。

我们发现0型文法是限制最少的一种文法,平时见到的文法几乎都属于0型文法。

②1型文法

1型文法也叫上下文有关文法,此文法对应于线性有界自动机。它是在0型文法的基础上每一个α→β,都有|β|>=|α|。这里的|β|表示的是β的长度。

注意:虽然要求|β|>=|α|,但有一特例:α→ε也满足1型文法。

如有A->Ba则|β|=2,|α|=1符合1型文法要求。反之,如aA->a,则不符合1型文法。

③2型文法

2型文法也叫上下文无关文法,它对应于下推自动机。2型文法是在1型文法的基础上,再满足:每一个α→β都有α是非终结符。如A->Ba,符合2型文法要求。

如Ab->Bab虽然符合1型文法要求,但不符合2型文法要求,因为其α=Ab,而Ab不是一个非终结符。

④3型文法

3型文法也叫正规文法,它对应于有限状态自动机。它是在2型文法的基础上满足:A→α|αB(右线性)或A→α|Bα(左线性)。

如有:A->a,A->aB,B->a,B->cB,则符合3型文法的要求。但如果推导为:A->ab,A->aB,B->a,B->cB或推导为:A->a,A->Ba,B->a,B->cB则不符合3型方法的要求了。具体的说,例子A->ab,A->aB,B->a,B->cB中的A->ab不符合3型文法的定义,如果把后面的ab,改成“一个非终结符+一个终结符”的形式(即为aB)就对了。例子A->a,A->Ba,B->a,B->cB中如果把B->cB改为B->Bc的形式就对了,因为A→α|αB(右线性)和A→α|Bα(左线性)两套规则不能同时出现在一个语法中,只能完全满足其中的一个,才能算3型文法。

那么这四类文法如何判断呢?

其实四种文法就是规定产生式的左和右边的字符的组成规则不同而已,于是我们便可以严格根据左边和右边规则的不同来加以判断。

首先,应该明确,四种文法,从0型到3型,其规则和约定越来越多,限制条件也越来越多,

所以我们应该按照3->2->1->0的顺序去判断,一旦满足前面的规则,就不用去判断后面的了。

1.先来看看3型文法的判断规则
①:左边必须只有一个字符,且必须是非终结符; 
②:其右边最多只能有两个字符,要么是一个非终结符+终结符(终结符+非终结符),要么是一个终结符。
③:对于3型文法中的所有产生式,若其右边有两个字符的产生式,这些产生式右边两个字符中终结符和非终结符的相对位置一定要固定,也就是说如果一个产生式右边的两个字符的排列是:终结符+非终结符,那么所有产生式右边只要有两个字符的,都必须满足终结符+非终结符。反之亦然。

2.再看看2型文法判断规则
①:与3型文法的第一点相同,即:左边必须有且仅有一个非终结符。 
②:2型文法所有产生式的右边可以含有若干个终结符和非终结符(只要是有限的就行,没有个数限制)。

3.最后再看看1型文法判断规则
①:1型文法所有产生式左边可以含有一个、两个或两个以上的字符,但其中必须至少有一个非终结符。 
②:与2型文法第二点相同,但需要满足|α|≤|β|.

0型文法不需要判断了,一般的文法都是0型文法。 O(∩_∩)O

作者:进击的猿猴
来源:CSDN
原文:https://blog.csdn.net/cszhangchao/article/details/8710723
版权声明:本文为博主原创文章,转载请附上博文链接!

乔姆斯基文法分类【0型1型2型3型文法】相关推荐

  1. 乔姆斯基文法分类 - 0型、1型、2型、3型

    刚刚学软件设计师中的编译原理,对文法分类比较晕,查看了一些资料,进行了如下整理: 0型文法:又称为短语文法,对应于图灵机 (1):式子左边可以有多个字符,而且至少含有一个非终结符 (2):式子右边可以 ...

  2. 通俗解释乔姆斯基文法体系

    关于乔姆斯基4种文法的区分,有的时候很令人头疼,在此,小编来解释一下如何正确而又迅速的判断它们,如果有不严谨的地方,欢迎大家批评指正: 释义 在文法的乔姆斯基体系中,文法被分为4类,分别是0型文法.1 ...

  3. 乔姆斯基生成语法_浅议乔姆斯基转换生成语法

    [摘要]转换生成语法提出了许多独创性的见解,以至于被称作是一场语言学的革命.本文将对以下几个相关问题逐一论述:转换生成语法的产生与发展;它的语言习得机制假说和句法理论. [关键词]转换生成语法;语言习 ...

  4. 「无心插柳柳成荫」的乔姆斯基 | 追溯 AI 大师系列

    https://mp.weixin.qq.com/s?__biz=MzI5NTIxNTg0OA==&mid=2247495266&idx=1&sn=77a3eb91172618 ...

  5. c command语言学例子,乔姆斯基语言学理论发展史研究

    乔姆斯基语言学理论发展史研究 论文目录 内容摘要第1-4 页 ABSTRACT第4-5 页 中文提要第5-13 页 SYNOPSIS第13-24 页 Introduction第24-28 页 0.1. ...

  6. 乔姆斯基生成语法_《乔姆斯基的生成语法解读》.pdf

    <乔姆斯基的生成语法解读>.pdf 2008年第6期 广西社会科学 N0.6,2008 GI『ANGxI (总第156期) S陋HUI陋XUE 乔姆斯基的生成语法解读 杨卫东戴卫平 (中国 ...

  7. 语言学与计算机,计算机与乔姆斯基语言学_刘俐李

    2002年第4期(总第72期) 语言与翻译(汉文)La ng uag e and T ra nslatio n(Chinese) N o.4,2002 Gener al No.72 计算机与乔姆斯基语 ...

  8. 3.2.4乔姆斯基的语言观2

    自然语言的使用需要说出或写下符号才算完成.人类婴幼儿对母语的学习,是从父母.周围其他人的讲话,不断接收实际例子,以熟悉不同场景下字.词.复合词.词组等素材的使用,以及各种组合方式的使用:然后自己不断实 ...

  9. 语言学中不同视角的抽象与具体——谈索绪尔、乔姆斯基、韩礼德的语言观

    任何领域的学者或许都无法避免区分一种具体的现象和一种抽象的本质的问题,即现象-本质/具体-抽象的问题.这是因为研究者们似乎都不会仅仅满足于自己能观测到的东西--他们更想知道为什么自己会观测到这些东西. ...

最新文章

  1. 图数据库应用:金融反欺诈实践
  2. 【Java开发】生成二维码
  3. [开发笔记]-winfom ListBox控件选中项上下移动排序
  4. 【华为云技术分享】人脸识别算法的训练之路(下)
  5. 设计模式二:结构型模式
  6. 蓝桥杯 ADV-72 算法提高 一元一次方程
  7. beanstalkd最佳实践-编程开发
  8. 频率单位Hz、MHz、GHz、THz、PHz、EHz换算关系
  9. html5做开心消消乐源代码,html开心消消乐源码
  10. webapp开发框架
  11. ember controller内调用save修改model数据时出现null的解决方案
  12. 机器学习笔记——生成式对抗网络GAN
  13. Airprint across subnets(2)
  14. java实现路由器重启_java 重启路由器
  15. java8 lamda throw_【修炼内功】[Java8] Lambda表达式里的陷阱
  16. rebuild node-sass npm install
  17. 2分钟部署人生模拟器,解锁人生新剧情
  18. iOS开发特殊日期灰色界面的实现
  19. Nsight compute远程连接不上
  20. Filmage Converter for mac - 全能的音视频转换器「m1兼容」

热门文章

  1. 查询Mysql 最近几天,最近几周的语句
  2. c语言实现小学生作业,C语言实现小学生考试系统
  3. R语言sharpiro_r语言实验报告总结(共9篇).doc
  4. 文档管理系统中权限控制实现方案
  5. DirectX9学习(一)
  6. MyCat2 mysql8 读写分离 主从自动切换
  7. 基于51单片机的水箱水位监测控制系统proteus仿真原理图PCB
  8. 【uploader】表格化自整理vue-simple-uploader的文档(超详细)
  9. 《关中匪事》的主题曲
  10. Qt:构建套件(Kits)