context-free-grammar相关内容

一元减法的无上下文语法建议?

L = {1 i -1 j = 1 ij :ij> = 0,i,j > = 0} 我对如何构造一个语法来追踪字符串元素的减法感到困惑。我不知道如何开始,并尝试使用表格的等效结构 L = {1 i = 1 ij + 1 j } 任何提示或建议。 解决方案 这里有个提示:总是尝试从括号平衡的角度考虑上下文无关的语言。 请考虑以下两种语言: ab() aabb( ..
发布时间:2020-10-08 23:22:49 其他开发

使用C语言的非上下文无关语言示例?

使用C语言的非上下文无关语言的例子有哪些?以下非CFL如何用C语言存在? a)L1 = {wcw | w为{a,b} *} b)L2 = {a ^ nb ^ mc ^ nd ^ m | n,m> = 1} 解决方案 问题措辞很笨拙,所以我字里行间,在这里阅读。 C语法中通常出现的各种歧义[1]不会呈现语言。非上下文无关。 (实际上,它们甚至不会使语法具有非上下文无关的语法 ..

将上下文无关的语法转换为正则表达式

我目前正在浏览CFG,看到了答案,我不确定他们是怎么得到的。 S->是如何从CFG转换为正则表达式的? aS | bX | a X-> aX | bY | a Y-> aY | a 答案: R.E-> (a *(a + ba * a + ba * ba * a)) 解决方案 您应该学习我在答案中写的基本规则“从正则表达式构造等效的正则语法” ,这些规则将帮 ..
发布时间:2020-10-08 23:20:27 其他开发

现实世界中的LR(k> 1)语法?

对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)语法 ..
发布时间:2020-10-08 23:20:23 其他开发

Java方法声明中的方括号是什么意思?

Java中方法声明的语法如下: Java方法声明BNF: method_declaration :: = {修饰符}类型标识符 “(” [parameter_list]“)” {“ [”“]”} (statement_block |“;”) 我想知道方括号是什么意思。 有人可以给我一个例子吗? Java中的方法声明是否如上(泛型如何 ..
发布时间:2020-10-08 23:19:17 Java开发

CFG的扩展,这是什么?

请考虑以下对上下文无关语法的扩展,该扩展允许规则在左侧出现,而在非结束符的右侧具有一个(或多个)结束符。也就是说,规则的形式为: A b-> ... 右侧可能是任何东西,例如无上下文语法。特别是,不需要是必须的,右侧的末尾将具有完全相同的端子符号。在这种情况下,此扩展将是上下文相关的。但是终端不仅仅是上下文。有时,此终端称为“回送”。 很显然,它不再是CFG(类 ..

如何枚举上下文无关语法的字符串?

您使用什么算法枚举上下文无关文法生成的字符串? 在没有递归的情况下似乎可行,但我无法确定列出了可能包含所有(可能是间接的)递归的一般情况。 (我不是在寻找深奥的解决方案就像此页面上的那个一样;我'正在寻找可以映射到标准命令性代码的算法。) 解决方案 低效算法: 构造R,语法的Earley解析器。 对于A *中的每个字符串S(A是语法字母): 如果R识别出S: 输出S ..
发布时间:2020-10-08 23:18:11 其他开发

给定以下语言,构造语法{a ^ n b ^ m | n,m = 0,1,2,...,n< = 2m}

我刚刚参加了期中考试,但是无法回答这个问题。 有人可以举几个例子,并为或 语言构造一个语法,至少告诉我如何我会去解决的吗? 也可以为 L 编写语法: L = {a n b m | n,m = 0,1,2,...,n 解决方案 如何为形式语言编写语法? 在阅读我的这篇文章之前答案,您应该先阅读: 用于创建无上下文语法的提示 。 ..

C的无上下文语法

我正在研究C的解析器。我正在尝试查找C的所有无上下文派生列表。理想情况下,它将以BNF或类似形式出现。我敢肯定有这样的事情,但是在Google周围搜索并没有给我太多帮助。 事实证明,阅读现有解析器/编译器的源代码比提供帮助要容易得多,因为我所发现的大多数东西比一个人要雄心勃勃和复杂得多我正在构建。 解决方案 您始终可以使用C11标准本身的附件A。免费提供的标准草案将为您的目的服务,网 ..
发布时间:2020-10-08 23:18:00 其他开发

将歧义语法转换为歧义

我不明白模棱两可的语法是如何派生出来的?考虑网站上的示例:示例。语法的衍生方式使我感到困惑。 有人可以引导我吗? 解决方案 该示例有两个语法: 模棱两可: h3> E→E + E | E ∗ E | (E)| a 明确: E→E + T | T T→T ∗ F | F F→(E)| a 模棱两可的语法是使用模棱两可的 ..
发布时间:2020-10-08 23:17:58 其他开发

是“正则表达式”在现代编程语言中,真的“上下文敏感语法”吗?

这些年来,“正则表达式”模式匹配变得越来越强大,我想知道:这真的就是上下文相关语法匹配吗?它是上下文无关语法匹配的变体/扩展吗?现在在哪里,为什么不把它叫做旧的限制性“正则表达式”呢? 解决方案 尤其是,捕获括号的反向引用使正则表达式比正则,无上下文或上下文敏感语法更复杂。这个名字只是历史上的名字(尽可能多的词)。另请参阅Wikipedia中的本节和此使用Perl进行示例解释。 ..
发布时间:2020-10-08 23:17:54 其他开发

哪些编程语言是无上下文的?

或者,更准确地说:哪种编程语言是由上下文无关的语法定义的? 根据我的收集,C ++并非上下文无关的诸如宏和模板之类的东西。我的直觉告诉我,功能语言可能是上下文无关的,但是我没有任何硬数据可以支持。 简洁的示例的额外代表:-) 解决方案 语法上正确的程序集对几乎所有语言都是上下文无关的。 几乎所有语言的编译程序集都不是上下文无关的。例如,如果所有编译的C程序的集合都是上下文 ..
发布时间:2020-10-08 23:17:49 其他开发

为什么需要端子?我的解决方案是否足够?

我正在努力弄清上下文无关语法,我想我已经接近了。使我感到困惑的是这个问题(我一个月内要参加考试时正在做练习题): 我想出了这种语言,但我认为这是错误的。 S->抗体A | B A-> aA | Σ B-> bB | Σ 显然,这是正确的解决方案: S->抗体aA | bB A-> aA | Σ B-> bB | ∑ 我不太明白为什么我们有 ..
发布时间:2020-10-08 23:17:40 其他开发

求幂运算的明确语法

E-> E + T | E-T | T T-> T * F | T / F | F F->我(E) 我如何修改此语法以允许求幂运算 ^ ,这样我就可以写 i + i ^ i * i 吗?因为我们知道 ^ 的操作顺序更高,所以我所知道的是我必须使其正确关联。 解决方案 在EBNF中(扩展了Backus-Naur表格),则可能如下所示: expr->字词[( ..
发布时间:2020-10-08 23:17:36 其他开发

常规与上下文无关文法

我正在为我的计算语言测试进行学习,有一个主意是我遇到了麻烦。 我了解到常规语法更简单,不能包含歧义,但是不能完成编程语言所需的许多任务。我还理解无上下文语法允许歧义,但允许编程语言(例如回文集)进行某些必要的操作。 我遇到的麻烦是通过了解常规语法非终结符可以映射到终结符来理解上述所有方法或非终结符后跟一个终结符,或者上下文无关的非终结符映射到终结点和非终结点的任何组合。 有人可以 ..
发布时间:2020-10-08 23:17:33 其他开发