今天看到一篇挺好的关于编译原理四类文法解析的文章以及上下文有(无)关的回答,故此转载记录。

形式语言——四类文法

知乎:应该如何理解「上下文无关文法」?

首先先看知乎上,上下文无关文法的回到,我觉前两条回答看完后可以较清晰地理解了(侵删)

接着就是四类文法

文法定义

文法G=(N,∑,P,S),其中N为终止符集合,∑为终止符集合,P为产生式集合,S为起始语句


0-型文法(无限制文法或短语结构文法)包括所有的文法。该类型的文法能够产生所有可被图灵机识别的语言。可被图灵机识别的语言是指能够使图灵机停机的字串,这类语言又被称为递归可枚举语言。注意递归可枚举语言与递归语言的区别,后者是前者的一个真子集,是能够被一个总停机的图灵机判定的语言。


1-型文法(上下文相关文法)生成上下文相关语言。这种文法的产生式规则取如 αAβ -> αγβ 一样的形式。这里的A 是非终结符号,而 α, β 和 γ 是包含非终结符号与终结符号的字串;α, β 可以是空串,但 γ 必须不能是空串;这种文法也可以包含规则 S->ε ,但此时文法的任何产生式规则都不能在右侧包含 S 。这种文法规定的语言可以被线性有界非确定图灵机接受。

这道例题中,因为没有单独以C在左边的推导规则,所以在S—>A B C替换时,后面的BC要一起私用规则(d)来作推导


2-型文法生成上下文无关语言。这种文法的产生式规则取如 A -> γ 一样的形式。这里的A 是非终结符号,γ 是包含非终结符号与终结符号的字串。这种文法规定的语言可以被非确定下推自动机接受。上下文无关语言为大多数程序设计语言的语法提供了理论基础。


3-型文法(正规文法)生成正规语言。这种文法要求产生式的左侧只能包含一个非终结符号,产生式的右侧只能是空串、一个终结符号或者一个非终结符号后随一个终结符号;如果所有产生式的右侧都不含初始符号 S ,规则 S -> ε 也允许出现。这种文法规定的语言可以被有限状态自动机接受,也可以通过正则表达式来获得。正规语言通常用来定义检索模式或者程序设计语言中的词法结构。

总结

转载于:https://www.cnblogs.com/Guhongying/p/10884883.html

四类文法以及上下文有(无)关的理解【转】相关推荐

  1. 汽车的一类、二类、三类、四类底盘是怎么划分的?

    一类.二类.三类.四类底盘是怎么划分的?汽车底盘的一二三分类并不是质量的分类,而是汽车制造时的分类: 一类汽车:也就是通常意义上说的整车,包括了汽车的全部系统: 二类汽车:又称作二类底盘,指只缺少车厢 ...

  2. 存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储

    存储结构分四类:顺序存储.链接存储.索引存储 和 散列存储. 顺序结构和链接结构适用在内存结构中. 顺序表每个单元都是按物理顺序排列的,如果你想访问那个单元你可以根据提供的指针等直接访问到需要的东西, ...

  3. 自动驾驶中常用的四类机器学习算法

    来源:智车科技 机器学习算法已经被广泛应用于自动驾驶各种解决方案,电控单元中的传感器数据处理大大提高了机器学习的利用率,也有一些潜在的应用,比如利用不同外部和内部的传感器的数据融合(如激光雷达.雷达. ...

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

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

  5. UDP打洞NAT大致分为下面四类 P2P

    NAT大致分为下面四类 1) Full Cone 这种NAT内部的机器A连接过外网机器C后,NAT会打开一个端口.然后外网的任何发到这个打开的端口的UDP数据报都可以到达A.不管是不是C发过来的. 例 ...

  6. 实验四 类和对象;类的继承和派生;多态性; 接口;构造器应用

    实验四 类和对象:类的继承和派生:多态性: 接口:构造器应用 一.实验目的 1. 掌握类与对象的关系: 2. 掌握类的定义: 3. 掌握对象的声明及使用: 4. 掌握构造方法的概念及调用时机: 5. ...

  7. 易周金融 | 邮惠万家银行开业;微信公众号叫停四类金融营销宣传

    易观分析:<数字经济全景白皮书>浓缩了易观分析对于数字经济各行业经验和数据的积累,并结合数字时代企业的实际业务和未来面临的挑战,以及数字技术的创新突破等因素,最终从数字经济发展大势以及各领 ...

  8. 内核proc参数注释(kernel、vm、net、fs四类)

    转载自:https://www.cnblogs.com/tolimit/p/5065761.html 原作者很详细的列出了proc的这类接口,方便大家查询,中间有些还没有补充完整,待遇到了再补充吧,感 ...

  9. 深圳市科技创新委员会关于印发《深圳市科学技术奖四类奖项实施细则》的通知

    各有关单位: 为规范深圳市科学技术奖四类奖项评审程序,保证评审工作顺利进行,根据<深圳市科学技术奖励办法>(深府规[2022]3号)的有关规定,结合我市实际,我委修订了<深圳市科学技 ...

最新文章

  1. DllMain中不当操作导致死锁问题的分析——线程中调用GetModuleFileName、GetModuleHandle等导致死锁
  2. spring MVC(2)--注解Hello World
  3. Lanecat网猫的案例
  4. 猜数游戏,随机目标数字,直到猜中退出
  5. java 权限url权限_SpringBootSecurity学习(11)网页版登录之URL动态权限
  6. Java正则表达式的使用和详解(上)
  7. C语言实现去掉字符串中指定的字符
  8. 2台电脑一根网线传文件_用1根网线直连2台电脑,能干嘛?
  9. 当网卡收到的包的目的地址是主机上另一个网卡的地址.arp总结
  10. 冒泡法排序c语言源程序,冒泡排序算法实例程序(C语言)
  11. .H264 .yuv格式文件下载还需要积分? 自己动手 ffmpeg几句命令轻松搞定
  12. 卓有成效的管理者(笔记)——我能贡献什么
  13. java打印sscil码_2018最新发布 |SSCI收录语言学学科期刊目录
  14. eudc计算机术语英文,汽车循环工况测试CLTC(CLTC-P和CLTC-C)、WLTC、FTP75、JC08、NEDC、ECE15、EUDC.xls...
  15. 动画效果--漫天飞雪
  16. 微信小程序-猜拳小游戏
  17. 安创安全OA——小程序
  18. Blender展UV插件:UVSquares
  19. Nginx 方向代理解决跨域问题-2
  20. 你知不知道,天空没有想象中蓝

热门文章

  1. 关注 Web Client Software Factory [Weekly Drop 08]
  2. 【SpringMVC 笔记】Json 交互处理
  3. 【恋上数据结构】基数排序、桶排序、休眠排序
  4. [转]从根上理解高性能、高并发:深入计算机底层,理解线程与线程池
  5. [转][进阶]-Python3 异步编程详解
  6. 还被python收智商税?做大数据的朋友告诉我月薪2w的方法
  7. 想做数据化转型,为什么必须要上企业级BI?
  8. 阿里数据总监手把手教学:如何面向企业做一次有价值的数据分析
  9. 让数据可视化告诉你,中秋吃这样的月饼绝对没错
  10. )AIR程序打包/绿化,脱离air runtimes(AIR运行环境)的方法