context-free-grammar相关内容
L = {1 i -1 j = 1 ij :ij> = 0,i,j > = 0} 我对如何构造一个语法来追踪字符串元素的减法感到困惑。我不知道如何开始,并尝试使用表格的等效结构 L = {1 i = 1 ij + 1 j } 任何提示或建议。 解决方案 这里有个提示:总是尝试从括号平衡的角度考虑上下文无关的语言。 请考虑以下两种语言: ab() aabb(
..
我正在尝试将语义结果和听写请求的结果结合到SRGS文档的语义值中。例如,我会说“搜索马铃薯”,输出将类似于out =“ Search Potato”,其中马铃薯是用户说的随机单词。我坚决使用垃圾特别规则,但这似乎不起作用。到目前为止,这就是我所拥有的:
..
使用C语言的非上下文无关语言的例子有哪些?以下非CFL如何用C语言存在? a)L1 = {wcw | w为{a,b} *} b)L2 = {a ^ nb ^ mc ^ nd ^ m | n,m> = 1} 解决方案 问题措辞很笨拙,所以我字里行间,在这里阅读。 C语法中通常出现的各种歧义[1]不会呈现语言。非上下文无关。 (实际上,它们甚至不会使语法具有非上下文无关的语法
..
L = {ww | w属于{0,1} *}的补码的CFG是什么? 解决方案 L1 = {w1w | w {0,1} *},L0 = {w0w | w {0,1} *}。 可以使用以下CFG定义这些语言: S0 / 1-> | 0S0 | 1S1 | 0S1 | 1S0 现在看L3: L3 =(L1)U(L2)U(L1L2 )U(L2L1) 从上下文到闭包,
..
我目前正在浏览CFG,看到了答案,我不确定他们是怎么得到的。 S->是如何从CFG转换为正则表达式的? aS | bX | a X-> aX | bY | a Y-> aY | a 答案: R.E-> (a *(a + ba * a + ba * ba * a)) 解决方案 您应该学习我在答案中写的基本规则“从正则表达式构造等效的正则语法” ,这些规则将帮
..
对k> 1进行人工LR(k)语法很容易: 输入:A1 B x 输入:A2 B y(为终端a引入减少-减少冲突) A1:a A2:a B:bbb ... b(终端b发生k-1次) 但是,有没有真实世界非LR(1)计算机是LR(k> 1)可解析的语言? 还是非LR(1)语言也不是LR(k)? 解决方案 如果语言具有 LR(k)语法,则它具有 LR(1)语法
..
Java中方法声明的语法如下: Java方法声明BNF: method_declaration :: = {修饰符}类型标识符 “(” [parameter_list]“)” {“ [”“]”} (statement_block |“;”) 我想知道方括号是什么意思。 有人可以给我一个例子吗? Java中的方法声明是否如上(泛型如何
..
请考虑以下对上下文无关语法的扩展,该扩展允许规则在左侧出现,而在非结束符的右侧具有一个(或多个)结束符。也就是说,规则的形式为: A b-> ... 右侧可能是任何东西,例如无上下文语法。特别是,不需要是必须的,右侧的末尾将具有完全相同的端子符号。在这种情况下,此扩展将是上下文相关的。但是终端不仅仅是上下文。有时,此终端称为“回送”。 很显然,它不再是CFG(类
..
您使用什么算法枚举上下文无关文法生成的字符串? 在没有递归的情况下似乎可行,但我无法确定列出了可能包含所有(可能是间接的)递归的一般情况。 (我不是在寻找深奥的解决方案就像此页面上的那个一样;我'正在寻找可以映射到标准命令性代码的算法。) 解决方案 低效算法: 构造R,语法的Earley解析器。 对于A *中的每个字符串S(A是语法字母): 如果R识别出S: 输出S
..
将下面的语法转换为Chomsky Normal Form。给出所有中间步骤。 S-> AB | aB A-> aab | lambda B-> BBA 好,所以我要做的第一件事就是添加一个新的起始变量 S0 所以现在我有 S0→ S S-> AB | aB A-> aab | lambda B-> bbA 然后
..
我刚刚参加了期中考试,但是无法回答这个问题。 有人可以举几个例子,并为或 语言构造一个语法,至少告诉我如何我会去解决的吗? 也可以为 L 编写语法: L = {a n b m | n,m = 0,1,2,...,n 解决方案 如何为形式语言编写语法? 在阅读我的这篇文章之前答案,您应该先阅读: 用于创建无上下文语法的提示 。
..
我正在研究C的解析器。我正在尝试查找C的所有无上下文派生列表。理想情况下,它将以BNF或类似形式出现。我敢肯定有这样的事情,但是在Google周围搜索并没有给我太多帮助。 事实证明,阅读现有解析器/编译器的源代码比提供帮助要容易得多,因为我所发现的大多数东西比一个人要雄心勃勃和复杂得多我正在构建。 解决方案 您始终可以使用C11标准本身的附件A。免费提供的标准草案将为您的目的服务,网
..
我不明白模棱两可的语法是如何派生出来的?考虑网站上的示例:示例。语法的衍生方式使我感到困惑。 有人可以引导我吗? 解决方案 该示例有两个语法: 模棱两可: h3> E→E + E | E ∗ E | (E)| a 明确: E→E + T | T T→T ∗ F | F F→(E)| a 模棱两可的语法是使用模棱两可的
..
这些年来,“正则表达式”模式匹配变得越来越强大,我想知道:这真的就是上下文相关语法匹配吗?它是上下文无关语法匹配的变体/扩展吗?现在在哪里,为什么不把它叫做旧的限制性“正则表达式”呢? 解决方案 尤其是,捕获括号的反向引用使正则表达式比正则,无上下文或上下文敏感语法更复杂。这个名字只是历史上的名字(尽可能多的词)。另请参阅Wikipedia中的本节和此使用Perl进行示例解释。
..
或者,更准确地说:哪种编程语言是由上下文无关的语法定义的? 根据我的收集,C ++并非上下文无关的诸如宏和模板之类的东西。我的直觉告诉我,功能语言可能是上下文无关的,但是我没有任何硬数据可以支持。 简洁的示例的额外代表:-) 解决方案 语法上正确的程序集对几乎所有语言都是上下文无关的。 几乎所有语言的编译程序集都不是上下文无关的。例如,如果所有编译的C程序的集合都是上下文
..
我正在努力弄清上下文无关语法,我想我已经接近了。使我感到困惑的是这个问题(我一个月内要参加考试时正在做练习题): 我想出了这种语言,但我认为这是错误的。 S->抗体A | B A-> aA | Σ B-> bB | Σ 显然,这是正确的解决方案: S->抗体aA | bB A-> aA | Σ B-> bB | ∑ 我不太明白为什么我们有
..
E-> E + T | E-T | T T-> T * F | T / F | F F->我(E) 我如何修改此语法以允许求幂运算 ^ ,这样我就可以写 i + i ^ i * i 吗?因为我们知道 ^ 的操作顺序更高,所以我所知道的是我必须使其正确关联。 解决方案 在EBNF中(扩展了Backus-Naur表格),则可能如下所示: expr->字词[(
..
我正在为我的计算语言测试进行学习,有一个主意是我遇到了麻烦。 我了解到常规语法更简单,不能包含歧义,但是不能完成编程语言所需的许多任务。我还理解无上下文语法允许歧义,但允许编程语言(例如回文集)进行某些必要的操作。 我遇到的麻烦是通过了解常规语法非终结符可以映射到终结符来理解上述所有方法或非终结符后跟一个终结符,或者上下文无关的非终结符映射到终结点和非终结点的任何组合。 有人可以
..
我是CFG的新手, 有人可以给我提示如何创建可生成某种语言的CFG 例如 L = {a m b n | m> = n} 我得到的是: S o -> a | aS o | aS 1 | e S 1 -> b | bS 1 | e 但是我认为这是错误的,因为 b 可以大于 a 。 解决方案 如何使用示例a m b n 编写CFG h2> L =
..
我正在复习计算理论课程的笔记,但在理解如何完成特定证明方面遇到困难。问题是: A = {0 ^ n 1 ^ m 0 ^ n | n> = 1,m> = 1}证明A不是规则的。 很明显,必须使用抽水引理。因此,我们有 | vy | > = 1 | vxy | = 1) uv ^ ixy ^ iz对于所有i>
..