首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏龙进的专栏

    编译原理:文法分类

    在编译原理课程中,我们知道有4种文法:0型、1型、2型、3型。本文将对他们的区别进行描述。 0型文法 0型文法是“无限制文法”、“短语结构文法“,它对产生式几乎没有限制。 对于任意的产生式\alpha \Rightarrow \beta , 0型文法要求,产生式左部的\alpha至少包含1个非终结符。 1型文法 1型文法称为“上下文有关文法”(CSG)。 与定义的 | \alpha | \le | \beta | 相矛盾,因此1型文法不包含空产生式。 2型文法 2型文法称为“上下文无关文法”(CFG)。2型文法要求其产生式左部必须为非终结符。 2型文法的产生式的一般形式为: A \Rightarrow \beta 3型文法 3型文法又称为“正则文法”(RG)。它分为左线性文法和右线性文法两种。 四种文法之间的关系 四种文法是逐级限制的关系:

    2.1K20编辑于 2023-10-18
  • 来自专栏AI机器学习与深度学习算法

    学习分类 2-2 内积

    内积 对于分类问题,我们不再像回归问题那样,找出直线的斜率和截距。为了方便理解,将拥有一个特征的回归问题所绘制的图示和拥有两个特征的分类问题绘制的图示进行对比。 回归问题使用一个特征绘制和分类问题使用两个特征绘制的图示,虽然都是拥有横纵坐标的平面图,但是它们之间存在本质的区别。 回归问题的横坐标轴表示特征,纵坐标轴表示预测的实数值,因此它们之间的关系我们可以使用一条直线方程来表示; 分类问题的横坐标轴和纵坐标轴都表示特征,而要预测的类别使用不同样式的点来表示,显然不能使用像回归问题的那种直线方程来表示了 我们为分类问题中的直线取一个新名字:决策边界(decision boundary),把决策边界定义为: w\cdot x = 0 图片 w\cdot x = w_1x_1 + w_2x_2 既然是分类问题的决策边界 \cdot x = |w|\cdot |x|\cdot cos\theta 图片 我们需要通过训练找到权重向量,然后找到与这个向量垂直的直线,也就是所谓的决策边界,最后根据这条直线就可以对数据进行分类

    54610编辑于 2022-11-08
  • 来自专栏全栈程序员必看

    编译原理文法详解_编译原理为什么存在递归文法

    这里主要讨论上下文无关文法构成的语法和自顶向下、自底向上的语法分析。 与此相对的上下文有关文法例如aSb -> abab 就是上下文有关文法。 推导 把产生式看成重写规则,符号串中的非终结符用产生式右部的串(α)代替。 推导具有自反性,传递性。 因此先匹配digit和()的文法。 然而,有的文法不能采用自顶向下分析,因为产生了左递归。 左递归的判定和消除 左递归的判定:一个文法G,若存在P经过一次或多次推导得到Pa(即能推导出以P开头的式子), 则称G是左递归的。 把所有关于S的文法带入,并且得到直接左递归的公式,例如上面的文法: Q→(Sa|a)b即Q→Sab|ab|b S→Sabc|abc|c|bc 然后就可以使用公式了。

    2.6K10编辑于 2022-11-17
  • 来自专栏全栈程序员必看

    编译原理之文法

    文法类型 产生式的限制 文法产生的语言 0型文法 α→β 其中α、β∈(VT∪VN) *,∣α∣≠0 0型语言 1型文法 α→β 其中α、β∈(VT∪VN) *,∣α∣≤∣β∣ 1型语言,即上下文有关语言 2型文法 A→β 其中A∈VN,β∈(VT∪VN) * 2型语言,即上下文无关语言 3型文法 A→α|αB(右线性)或A→α|Bα(左线性) 其中,A,B∈VN,α∈VT∪{ ε} 3型语言 a,aA→a(左边至少有一个大写字母) 1型文法:有一特例:α→ε也满足1型文法。 ) 3型文法:如有:A→a,A→aB,B→a,B→cB,则符合3型文法的要求。 如果所有的终端结点都是与终结符关联的,每棵推导树的终端结点自左至右所构成的字符串应该是文法G的一个句型,则该字符串是文法G的一个句子,此时该推导树是完全推导树。

    2.4K20编辑于 2022-08-09
  • 来自专栏codechild

    文法和语言

    文法的定义 文法的形式定义 四元组:G=(VT,VN,P,S)G=(V_T,V_N,P,S)G=(VT​,VN​,P,S) VTV_TVT​:终结符集合 终结符是文法所定义的语言的基本符号。 文法分类体系 0、1、2、3型文法 0型文法 无限制文法,对于任意一个推导式α->β,α中至少包含一个非终结符 由0型文法G生成的语言L(G)叫做0型语言。 1型文法 上下文有关文法,对于任意一个推导式α->β,∣α∣<=∣β∣|α|<=|β|∣α∣<=∣β∣ 该类文法中不包含空产生式ε,因为当有空产生式的时候,α的长度将大于β的长度。 由上下文有关文法(1型文法)生成的语言L(G)叫做上下文有关语言。 2型文法 α必须属于终结符。 由上下文无关文法(2型文法)生成的语言L(G)叫做上下文无关语言。 二义性文法 如果一个文法可以为某个句子生成多颗分析树,则称这个文法是二义性的。

    53530编辑于 2023-05-30
  • 来自专栏算法码上来

    论文赏析RNN文法

    Neural Network Grammars 代码地址:github 今天要介绍的这篇论文是来自NAACL16的Recurrent Neural Network Grammars,主要贡献点就是提出了一种新的文法 RNNG,不同于传统的PCFG之类的文法,RNNG使用RNN来对句子和它的句法树的联合概率进行建模,因此它是一个生成模型。 因此本文提出了一种利用RNN建模出来的全新文法RNNG,建立在句子的句法结构之上,消除了PCFG的上下文无关假设。 RNN文法 RNNG定义为三元组 ? ,其中 ? 是非终结符集合, ? 是终结符集合,并且 ? , ? 就是神经网络的参数集合。 总结 RNNG这个文法是个生成式模型,建模了句子和句法树的联合分布,稍稍修改即可应用到句法分析和语言模型中,效果也非常的好。

    70820发布于 2020-03-24
  • 来自专栏图灵技术域

    Chomsky文法类型判断

    文法简介 1.0型文法(短语文法) 如果对于某文法G,P中的每个规则具有下列形式: u:: = v 其中u∈V+,v∈V*,则称该文法G为0型文法或短语文法,简写为PSG。 0型文法或短语结构文法的相应语言称为0型语言或短语结构语言L0。这种文法由于没有其他任何限制,因此0型文法也称为无限制文法,其相应的语言称为无限制性语言。 2.1型文法(上下文有关文法) 如果对于某文法G,P中的每个规则具有下列形式: xUy:: = xuy 其中U∈VN;u∈V+;x,y∈V*,则称该文法G为1型文法或上下文有关文法,也称上下文敏感文法, 3.2型文法(上下文无关文法) 如果对于某文法G,P中的每个规则具有下列形式: U :: = u 其中U∈VN;u∈V+,则称该文法G为2型文法或上下文无关文法,简写为CFG。 左线性文法和右线性文法通称为3型文法或正则文法,有时又称为有穷状态文法,简写为RG。

    1.5K20发布于 2021-05-21
  • 来自专栏IT技术圈

    习题2-2 阶梯电价 (15分)

    为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。请编写程序计算电费。

    3.2K10发布于 2021-04-01
  • 来自专栏图灵技术域

    消除文法的左递归

    ,然后用消除直接左递归的方法改写文法。 如果一个文法不含有回路,即形如PP的推导,也不含有以ε为右部的产生式,那么就可以采用下述算法消除文法的所有左递归。 Q和R的规则是多余的,将其删除并化简,最后得到文法G[S]为: S→abcS’/ bcS’/ cS’ S’ →abcS’/ ε 当然如果对文法非终结符排序的不同,最后得到的文法在形式上可能不一样,但它们都是等价的 遇到的难点和解决方案 由于文法的形式多种多样,在消除递归时要考虑到各种情况,一般来说,首先要解决统一文法格式,因此需要将具有相同非终结符左部的文法用|符号合并。 在消除过程中要判断两个量,一个是|的位置,另一个是非终结符的位置,由于合并的文法串中有多个|,并且会生成新的转换的文法,因此需要用while语句进行处理,直到所有文法的形式不再变化为止。

    4.6K30发布于 2021-05-21
  • 来自专栏小L的魔法馆

    LL(1)文法--递归下降程序

    递归下降程序 递归下降程序一般是针对某一个文法的。而递归下降的预测分析是为每一个非终结符号写一个分析过程,由于文法本身是递归的,所以这些过程也是递归的。 以上是前提。 Sample 假如给的是正规式子,首先要做的是将其改为文法表示: (int∣float)id(,id)∗(int | float) id(,id)^*(int∣float)id(,id)∗ 以上式子为例 ,将其改为文法表示 D−−>TLD --> TLD−−>TL T−−>int∣floatT-->int | floatT−−>int∣float L−−>L,id∣idL

    1.2K20发布于 2019-02-20
  • 来自专栏效能与质量

    侃一侃编译原理的“文法

    ╮(╯﹏╰)╭ 中文有中文的语义、语法、句子、句法、文法,那么编程语言也有自己的语言系统。 我们知道,我们写的代码被编译器或者解释器所执行,那它们是按照什么文法来理解你的代码呢?这就是文法。 (ˇˍˇ) 想~ 所以说,上下文无关文法不能用来描述自然语言,但是对于当今的程序语言来说,上下文无关文法基本够用了。下文中的“文法”,如果没有特殊说明,都是之指“上下文无关文法”。 三.文法与语言的推导 假设G是一个文法,S是开始符号,如果S经过零步或者若干步推出α,那么称α是一个句型。只包含终结符号的句型是一个句子。文法G产生的所有句子构成一门语言,记为L(G)。 比如从E->(i+i) 的过程: 对于一个文法,如果它的某些句子对应两棵不同的语法树,这个文法就属于“二义性文法”。 对于程序语言来说,我们常常希望它的文法是非二义性的,但是,只要我们能够控制和驾驭文法的二义性,文法二义性的存在也不一定是坏事。 现在已经证明了,文法二义性是不可判定的。

    92320发布于 2021-08-25
  • 来自专栏Hank’s Blog

    2-2 R语言基础 向量

    > x <- vector("character",length=10) > x1 <- 1:4 > x2 <- c(1,2,3,4) > x3 <- c(TRUE,10,"a") #如果给向量赋值时元素类型不一致,R就会强制转换,将他们变为同一类型 > x4 <- c("a","b","c","d")

    73410发布于 2020-09-16
  • 来自专栏编译原理

    编译原理 第二章下: 推导,规约,句型句子,语言,文法分类,二义性

    若Z 0步以上推导出x,则称x是文法G的句型2.句子 有文法GZ,若Z 1步以上推导出且x都是终结符号,则称x是文法G的句子例:GS,S→0S1,S→01S⇒0S1⇒00S11⇒000S111⇒00001111G G生成的语言记为L(G(Z)),他是文法G(Z)的一切句子的集合注意:给定一文法,能从结构上唯一确定其语言,给定一种语言,能确定其文法,但不唯一我的理解,文法是信息,语言就类似于汉语,英语这种,给我一个信息 例:2.6 文法分类文法中的不同规则施加不同的限制,将文法和语言分为四大类0型文法:0型语言或短语结构语言1型文法:1型语言或上下文有关语言==2型文法==:2型语言或上下文无关语言2型文法是程序设计语言语法规则 ==3型文法==:3型语言或正则语言3型文法是程序设计语言构词规则2.6.1 0型文法对产生式基本无限制2.6.2 1型文法文法左部符号个数不超过右部符号个数2.6.3 2型文法任意产生式A→B,A属于非终结符号 递归文法使人们能用有穷的文法刻画无穷语言。2.9 文法的二义性若一个文法存在某个句子或句型,它存在两棵不同的语法树,则称该句子或句型是二义性的,对应的文法也是二义性的。

    1K10编辑于 2024-09-20
  • 来自专栏coding for love

    2-2 什么是模块打包工具

    关于模块和模块化,百度百科有一段引用自《Java应用架构设计:模块化模式与OSGi》一书的解释非常好:

    93400发布于 2019-04-18
  • 来自专栏波波烤鸭

    2-2 SPU和SKU详解及MyBatisPlus自动生成

    2-2 SPU和SKU详解   商城系统中的商品信息肯定避免不了SPU和SKU这两个概念,本节就给大家详细介绍下这块的内容 1、掌握SKU和SPU关系 SPU = Standard Product Unit 1)分类选择 ? 发布商品前,需要先选择发布商品所属分类分类严格定义为3级分类分类选择完成后,需要加载品牌,品牌加载并非一次性加载完成,而是根据选择的分类进行加载。 当选择分类后,加载分类对应的属性。 3.3 属性加载 属性也称为规格,属性也需要根据分类查询,我们可以按照如下思路实现: 1、先从category_attr根据分类ID查询出当前分类拥有的属性ID集合 2、从sku_attribute中查询属性集合

    3.1K41发布于 2021-01-21
  • 来自专栏mysql

    hhdb数据库介绍(2-2)

    HHDB Server在计算节点、数据节点、配置库等层次提供全面的高可用保障。提供完善的心跳检测、故障切换对存储节点同步追平判断、全局自增序列在故障时自动跳号、客户端连接Hold等机制,保障数据服务的可用性与数据的一致性。

    17910编辑于 2024-11-28
  • 来自专栏刷题笔记

    2-2 学生成绩链表处理 (20 分)

    本文链接:https://blog.csdn.net/shiliang97/article/details/101169860 2-2 学生成绩链表处理 (20 分) 本题要求实现两个函数,一个将输入的学生成绩组织成单向链表

    1.6K20发布于 2019-11-08
  • 来自专栏云时之间

    NLP入门之语言模型以及n元文法

    在阅读这篇文章之前,我希望大家可以已经有以下的知识积累作为基础,像是概率论里的基本概念,比如最大似然估计,贝叶斯分类,贝叶斯决策理论等等,甚至是一些包括信息论的简单基本概念,比如信息熵等,并且如果能对简单的形式语言可以理解就更加完美了 在前几篇我的关于形式语言的文章中,我们大致可以理解到形式语言有以下的几个缺陷: 1:比如像汉语,英语这样的大型的自然语言系统,形式语言就比较难以构造精确的文法. 2:形式语言的逻辑规则太过于复杂,实际上并不符合我们的学习语言的习惯 . 3:有一些句子.比如你这句子的文法是正确的,但是实际上在我们的生活中是不可能发生的,形式语言是无法识别这些句子的. 就按照三元文法为例: 在之前的介绍中,我们可以认为这是一个词的概率实际上只是跟前边的词有关,那么就可以有以下的方程: ? 这个句子出现的概率为0.06,这也就是n元文法的一个简单应用. 下一篇文章我们将讲述下模型的选择以及模型的性能评估.

    78190发布于 2018-04-11
  • 来自专栏前端之旅

    编译原理学习笔记-2:文法和语言

    以上面文法为例,011 就是句子。 语言:文法产生的句子的全体就构成了语言,记作 L(G)。以上面文法为例,L(G) = { 011,11 }。 3. 文法类型 乔姆斯基把文法划分为四种类型(从 0 型到 1型),这四种类型层层增强,越到后面限制越大。 (1) 0 型文法 0 型文法也叫短语文法。 这里要注意一个特例就是: α → ε,虽然左部长度一定大于右部长度,但它仍然符合 1 型文法。 1 型文法也叫上下文有关文法。 (3) 2 型文法 在 1 型文法的基础上加以限制,规定对于每一个 α→β,都必须满足 α 是一个非终结符。也就是说,产生式左部必须得是一个非终结符。 2 型文法也叫上下文无关文法。 3 型文法也叫正规文法。 5. 文法和上下文 上下文实际上是在替换非终结符的时候给予的一个限制条件。也就是说,如果文法是上下文有关的,那么进行替换的时候需要考虑上下文,反之则不必。

    2.5K21发布于 2020-03-23
  • 来自专栏云时之间

    NLP入门之语言模型以及n元文法

    在阅读这篇文章之前,我希望大家可以已经有以下的知识积累作为基础,像是概率论里的基本概念,比如最大似然估计,贝叶斯分类,贝叶斯决策理论等等,甚至是一些包括信息论的简单基本概念,比如信息熵等,并且如果能对简单的形式语言可以理解就更加完美了 在前几篇我的关于形式语言的文章中,我们大致可以理解到形式语言有以下的几个缺陷: 1:比如像汉语,英语这样的大型的自然语言系统,形式语言就比较难以构造精确的文法. 2:形式语言的逻辑规则太过于复杂,实际上并不符合我们的学习语言的习惯 . 3:有一些句子.比如你这句子的文法是正确的,但是实际上在我们的生活中是不可能发生的,形式语言是无法识别这些句子的. 就按照三元文法为例: 在之前的介绍中,我们可以认为这是一个词的概率实际上只是跟前边的词有关,那么就可以有以下的方程: 为了使p(wi|wi-1)对于i=1有意义,我们需要加一个句首标记,为了使概率之和为 3:HE READ A BOOK BY DAVID 然后用最大似然估计方法来计算概率p(BROWN READ A BOOK) 结果如下: 因此结果如下: 这个句子出现的概率为0.06,这也就是n元文法的一个简单应用

    3.3K50发布于 2018-04-10
领券