编译原理中文法这部分内容很重要,软考中也涉及到了,刚开始这部分内容挺乱的,我连定义都看不懂就别说区分它们了,这是经过做题,从题中分析,再联系定义,再与同学们一起讨论终于把它们分清楚了,它们的关系用下面的图表示一下

1.文法

文法G定义为四元组(VN ,VT ,P,S)

  • VN :非终结符集,通常用大写字母表示
  • VT  : 终结符集,通常用小写字母表示
  • P    :产生式集合(规则集合)
  • S     :开始符号(识别符号)

提示:下面例子中的大写字母表示的是非终结符,而小写字母表示的是终结符。

2.0型文法(短语)

设G=(VN,VT,P,S),如果它的每个产生式α→β是这样一种结构:α∈(VN∪VT)*且至少含有一个非终结符,而β∈(VN∪VT)*,则G是一个0型文法。0型文法是这几类文法中,限制最少的一个,所以我们在试题中见到的,至少是0型文法。

0型文法相当于图灵机。

3.1型文法(上下文有关文法)

它是在0型文法的基础上每一个α→β,都有|β|>=|α|。这里的|β|表示的是β的长度。

1型文法相当于线性有界自动机。

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

特例:α→ε也满足1型文法。

4.2型文法(上下文无关文法)

2型文法是在1型文法的基础上,再满足:每一个α→β都有α是一个非终结符。如A->Ba,符合2型文法要求。

2型文法相当于下推自动机。

例子:Ab->Bab虽然符合1型文法要求,但不符合2型文法要求,因为其α=Ab,而Ab不是一个非终结符。A->Bab就对啦

5.3型文法(正规文法)

它是在2型文法的基础上满足:A→α|αB(右线性)或A→α|Bα(左线性)。

3型文法相当于有限状态自动机。

注意:3型文法中只能满足右线性,或只能满足左线性,不能两种同时都有

例子: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型方法的要求了。

相信大家通过我举得例子一定能理解这部分,能非常清楚的它们之间的区别

转载于:https://www.cnblogs.com/zhangruiping/p/4485486.html

用例子来区分4种文法相关推荐

  1. 怎么区分三种基本放大电路?

    怎么区分三种基本放大电路? 说道三种基本放大电路,相信学过模电知识的人都会脱口而出--共射极放大电路.共基极放大电路和共集电极放大电路. 以前在上课的时候,老师就讲,看输入输出,哪个极没有接到输入输出 ...

  2. 编译原理四种文法的理解补充

    如果你是学习,给定一个文法,判断是哪一个文法的话,那这篇不是讲这个,只是一点小小的理解补充. 四种文法如下: 补充: 1.0型文法,即递归可枚举文法相当于图灵机是指: 给定一个文法G,一个句子g,如果 ...

  3. matlab循环语句从小到大排列,三个例子讲解MATLAB三种循环

    三个例子讲解MATLAB三种循环 FOR循环 在for和end语句之间的{commands}按数组中的每一列执行一次.在每一次迭代中,x被指定为数组的下一列,即在第n次循环中,x=array(:, n ...

  4. 编译原理——语法分析(1)文法的形式定义与四种文法类型的区分

    文法的形式定义 1.处理文法的语法分析器大体上可以分为三种类型:通用的,自顶向下的和自顶向上的. 2.文法:一种用于描述程序设计语言语法的表示方法--"上下文无关文法",简称&qu ...

  5. 编译原理(一)几种文法,基础符号定义,闭包举例

    类型 文法 语言 0型文法,PSG文法,Phrase Structure Grammar,递归可枚举文法,最宽泛的文法 1型文法,CSG文法,Context-sensitive Grammar ,上下 ...

  6. 利用语义分割(FCN)区分两种有文字和无文字区域

    问题描述: 图书馆中的书大小不一,为了保证美观,章的位置应该尽量贴到图书的第一页的空白区域 语义分割即是对图像中每一个像素点进行分类,确定每个点的类别(空白或者是文字区域),从而进行区域划分.图像分割 ...

  7. 区分两种题目类型中的数学期望

    在概率论和统计学中,数学期望(mean)(或均值,亦简称期望)是试验中每次可能结果的概率乘以其结果的总和(百度百科) 一种类型的题目:小明抽中彩票的概率为 p,小明重复进行抽奖,则其能抽中彩票所需的抽 ...

  8. 语法推导树之短语,直接短语,句柄

    说语法推导树的短语,直接短语,句柄之前还是要回顾一下语法推导树的特征,只有了解了什么样的与是语法推导树后边的工作才能继续 语法推导树是在文法的基础上产生的,文法是由一个四元祖组成的G={VN,VT,P ...

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

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

最新文章

  1. error 1309 mysql_MySQ登录提示ERROR 1045 (28000)错误如何解决
  2. Python 量化(四)计算股票的移动平均线
  3. 多个app用同一个签名文件_手机APP和手机网站的区别有哪些?
  4. [转]Muilti-touch 双指缩放的实现探索
  5. oracle em agent,ORACLE 11G EM 配置命令及问题处理
  6. 吉林大学不如温州大学,泰晤士最新世界大学排名引发争议
  7. 物联网处理器五大类型应用分析指南
  8. PAT (Basic Level) Practice1008 数组元素循环右移问题
  9. 吃热狗游戏Java_(转)Java中正确理解Thread Local的原理与适用场景
  10. python爬取豆瓣电影名称与评分进行分析
  11. E71使用蓝牙连接PC套件的一些经验
  12. 微信公众号JS-SDK获取当前经纬度及地址信息
  13. python脚本 游戏赚金币_Python实现王者荣耀刷金币脚本功能
  14. android 乐固渠道打包,Jenkins奇技淫巧 — Python乐固,多渠道打包篇(Android自动化构建)...
  15. 多校区网络直播系统解决方案
  16. 守护客户数据价值:企业级NewSQL HTAP分布式云TBase架构详解
  17. 币圈的8大女神都是谁?-千氪
  18. 远山启:用数学照亮人性与自由
  19. Bootstrap-导航条-栅格系统-Carousel(轮播效果)-标签页
  20. 电源常识-纹波-EMI

热门文章

  1. ios 筛选_LOL手游开始筛选玩家对安卓和IOS有不同要求,不达标可以放弃了
  2. nodejs实践录:windows 10系统nodejs环境搭建
  3. [大学回忆录-思想]一种能力的培养
  4. android loader使用教程,Android Loader 机制,让你的数据加载更加轻松
  5. hsv分别代表什么_猫语大解密!你们知道不同的喵叫声,分别代表什么吗?
  6. 【kafka】浅谈Kafka的多线程消费的设计
  7. 【FLink】四种图 以及 数据在 taskManager 之间的流转
  8. 【maven】论 maven settings 文件 mirrors 对 IDEA 的影响
  9. 40-400-030-运维-优化-MySQL入门调优脚本tuning-primer的使用
  10. 【Flink】java.lang.NumberFormatException: Not a version: 9