乔姆斯基范式

在计算机科学中,一个形式文法是 Chomsky 范式的,当且仅当所有产生规则都有如下形式:

A → BC 或
A → α 或
S → ε

这里的 AB 和 C 是非终结符,α 是终结符(表示常量值的符号),S 是开始符号,而 ε 是空串。还有,B 和 C 都不可以是开始符号。

所有的 Chomsky 范式的文法都是上下文无关,反过来,所有上下文无关文法都可以有效的变换成等价的 Chomsky 范式的文法。

除了(在文法可能生成空串的时候包括的)可选规则 S → ε 是例外,Chomsky 范式的文法的所有规则都是扩张的,就是说在字符串的整个导出过程中,每个终结符和非终结符的字符串比起前面导出的字符串要么同样长度要么多出一个元素。长度 n 的字符串的导出总是精确的 2n-1 步长。

Chomsky 范式得名于诺姆·乔姆斯基,他是发明乔姆斯基层级的美国语言学家。

证明

  1. 长度为n个字符串需要n次A → α 的派生,因此需要n个语法变元;
  2. n个变元需要n-1次A → BC 的派生(从S开始,每次派生增加1个变元,增加n-1次);
  3. 由1.、2.得知,长度为n且满足乔姆斯基范式语法的字符串恰好需要2n-1次派生。

进一步的,因为导出非终结符的所有规则都把一个非终结符变换成两个非终结符,基于 Chomsky 范式的文法上的一个分析树是二叉树,而这个树的高度被限制于最高为这个字符串的长度。

由于这些性质,在语言和可计算性领域中很多证明采用了 Chomsky 范式。这些性质还产生了基于 Chomsky 范式的文法的各种有效算法;例如,判定给定字符串是否可以被使用 Chomsky 范式的给定文法生成的 CYK算法。

时间: 2024-11-11 10:22:55

乔姆斯基范式的相关文章

KMP算法的代码实现

上周算法班的BEN老师花了1个小时讲自动机和KMP的关系,结果failed...明天又要上课了,花了半天时间看了下KMP,暂且停留在利用next求模式中的跳跃长度,自动机那个还不能理解... 具体的可以百度阮一峰的KMP算法. 看着什么前缀后缀,突然想到上下文无关文法乔姆斯基范式了....又想到了NFA和正则表达式的转换,是时候复习复习了.. 太晚了,直接上代码,明天继续看ML和统计学!加油! 1 #include <iostream> 2 #include <string> 3

CSS之响应式布局

响应式布局 外部link的max.css #left { width: 50%; height: 100px; background-color: #FF6600; float: left; } #right { width: 50%; height: 100px; background-color: #3565ff; float: left; } 外部link的min.css #left { width: 100%; height: 100px; background-color: #FF66

UESTC30-最短路-Floyd最短路、spfa+链式前向星建图

最短路 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的T-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗? Input 输入包括多组数据. 每组数据第一行是两个整数NN ,MM (N≤100N≤100 ,M≤10000M≤1000

java企业站源码 响应式 兼容手机平板PC 主流SSM 框架 freemaker 静态引擎

java 企业网站源码 前后台都有 静态模版引擎, 代码生成器大大提高开发效率 前台: 支持三套模版, 可以在后台切换 点击:获取地址   QQ 313596790 官网 http://www.fhadmin.org/ 系统介绍: 1.网站后台采用主流的 SSM 框架 jsp JSTL,网站后台采用freemaker静态化模版引擎生成html 2.因为是生成的html,所以访问速度快,轻便,对服务器负担小 3.网站前端采用主流的响应式布局,同一页面同时支持PC.平板.手机(三合一)浏览器访问 4

响应式布局

响应式布局是Ethan Marcotte在2010年5月份提出的一个概念,简而言之,就是一个网站能够兼容多个终端--而不是为每个终端做一个特定的版本.这个概念是为解决移动互联网浏览而诞生的. 响应式布局可以为不同终端的用户提供更加舒适的界面和更好的用户体验,而且随着目前大屏幕移动设备的普及,用"大势所趋"来形容也不为过.随着越来越多的设计师采用这个技术,我们不仅看到很多的创新,还看到了一些成形的模式. 在可视区域的宽度小于 600px 的时候被应用. @media screen and

响应式:为什么百度、淘宝之类的大公司网页不使用响应式,而是独立开发一套手机页面?

响应式设计不是万能的,它有一定的好处,但也有一定的弊端.先给出结论:如果开发资源充裕,不应该考虑使用响应式设计来同时支持移动端和桌面端. 因为响应式最大的优点就是开发快.打个比方,移动端和桌面端的开发时间分别是 t,采用响应式设计写一个同时支持两者的网站可能只有 1.2t. 那为什么开发资源充足的情况下,不应该采取响应式设计来同时支持移动端和桌面端呢? 1. 响应式设计带来大量冗余代码.在移动端充斥着 webkit 内核的浏览器的时代,响应式设计的网站中却不得不带有大量兼容旧 IE 的代码.移动

Java NIO实现非阻塞式socket通信

博主知识水平有限,只能提供一个个人的狭隘的理解,如果有新人读到这儿,建议看一下其他教程或者API,如果不明白,再来看一下:如果有dalao读到这儿,希望能指出理解中的问题~谢谢 Java提供了用于网络通信的socket和serversocket包,然而实现方式是阻塞式的,同一时间点上只能进行一个连接,这会带来不好的体验.当然了,我们也可以通过不断创建线程的方式管理连接,但线程多了的话反而会降低效率.于是Java推出了非阻塞式IO--channel.并且channel提供关于网络通信的相关chan

java springmvc +spring+ mybaits 模块化开发框架 HTML5+css3.0+bootstrap响应式开发界面

需要源码,请加QQ:858-048-581 系统模块 1.   权限管理:点开二级菜单进入三级菜单显示 角色(基础权限)和按钮权限 角色(基础权限): 分角色组和角色,独立分配菜单权限和增删改查权限. 按钮权限: 给角色分配按钮权限. 2.   按钮管理:自定义按钮管理,维护按钮权限标识等 3.   菜单管理:无限级别自定义菜单,自定义菜单图标,业务菜单和系统菜单分离,菜单状态显示隐藏(递归处理) 4.   数据字典:无限级别,支持多级别无限分类.内设编号,排序等 5.   组织机构:无限级别,

【Bootstrap】3.优化站点资源、完成响应式图片、让传送带支持手势

A.优化站点资源 速度很重要.用户很关心.我们的站点必须加载够快,否则用户就会走人.SEO 也很重要.我们的站点必须加载够快,否者搜索排名就会下降. 明白了这样,我们就来清点一下 [Bootstrap]2.作品展示站点 中的资源.特别的,来看一看我们能控制的.影响页面速度的重要因素 —— 文件大小,包括图片.CSS和 JavaScript 文件.只要简单几步,我们就可以给这些文件“瘦身”,缩短加载时间. A.1 优化图片 这些图片都通过 Photoshop 的 “保存为 Web 格式” 进行了一