Questions tagged «formal-grammars»

有关形式语法的问题,形式语言的生成描述。

1
LL和LR语法的语言理论比较
人们经常说LR(k)解析器比LL(k)解析器更强大。这些陈述在大多数时候都含糊不清。特别是,我们应该比较固定的类还是所有的并集?那么情况如何呢?我尤其对LL(*)如何适合感兴趣。kkkkkk 据我所知,语法分析器LL和LR接受的各个语法集合是正交的,因此让我们来谈谈由各个语法集合产生的语言。令表示由解析器可以解析的语法生成的语言的类别,其他类别也类似。LR(k)LR(k)LR(k)LR(k)LR(k)LR(k) 我对以下关系感兴趣: LL(k)⊆?LR(k)LL(k)⊆?LR(k)LL(k) \overset{?}{\subseteq} LR(k) ⋃∞i=1LL(k)⊆?⋃∞i=1LR(k)⋃i=1∞LL(k)⊆?⋃i=1∞LR(k)\bigcup_{i=1}^{\infty} LL(k) \overset{?}{\subseteq} \bigcup_{i=1}^{\infty} LR(k) ⋃∞i=1LL(k)=?LL(∗)⋃i=1∞LL(k)=?LL(∗)\bigcup_{i=1}^{\infty} LL(k) \overset{?}{=} LL(*) LL(∗)∘?⋃∞i=1LR(k)LL(∗)∘?⋃i=1∞LR(k)LL(*) \overset{?}{\circ} \bigcup_{i=1}^{\infty} LR(k) 其中一些可能很容易。我的目标是收集一个“完整”的比较。参考被赞赏。

2
是否有天生的模棱两可和确定性的上下文无关语言?
当且仅当确定性下推式自动机可以接受上下文无关的语言时,我们才将其称为确定性语言,否则将其称为不确定性。 当且仅当生成该语言的所有无上下文语法都模棱两可,否则,我们才将上下文无关的语言固有地称为歧义。 确定性,明确语言的示例是以下语言: 一种不确定的,明确的语言的示例是以下语言: { 瓦特∈ { 一个,b } * | w = w R }{ añbñ∈ { a ,b }∗| Ñ≥0}{一种ñbñ∈{一种,b}∗|ñ≥0}\{a^{n}b^{n} \in \{a, b\}^{*} | n \ge 0\}{ 瓦特∈ { 一个,b }∗| w= w[R}{w∈{一种,b}∗|w=w[R}\{w \in \{a, b\}^{*} | w = w^{R}\} 在Wikipedia中,固有的模棱两可的上下文无关语言的一个示例是以下上下文无关语言的联合,它们也必须是上下文无关的: L = { añb米C米dñ∈ { a ,b …

9
上下文相关(类型1)语言的重要性是什么?
看到在乔姆斯基层次结构中,类型3语言可以由没有外部存储器的状态机(即有限自动机)识别,类型2由具有单个堆栈的状态机(即下推自动机)识别,类型0可以通过类型识别。一个具有两个堆栈的状态机(或者等效地,一个磁带,就像图灵机的情况一样),类型1的语言如何适合这张图片?而且,确定一种语言不仅是Type 0还是Type 1会带来什么优势?



6
从一组对中生成组合而无需重复元素
我有一对。每对都具有(x,y)的形式,使得x,y属于范围内的整数[0,n)。 因此,如果n为4,那么我有以下几对: (0,1) (0,2) (0,3) (1,2) (1,3) (2,3) 我已经有一对了。现在,我必须使用n/2对构建一个组合,这样就不会重复任何整数(换句话说,每个整数在最终组合中至少出现一次)。以下是正确和不正确组合以更好地理解的示例 1. (0,1)(1,2) [Invalid as 3 does not occur anywhere] 2. (0,2)(1,3) [Correct] 3. (1,3)(0,2) [Same as 2] 一旦我有了配对,有人可以建议我一种生成所有可能组合的方法。

2
如何证明一种语言是上下文无关的?
有许多技术可以证明某种语言不是上下文无关的,但是如何证明一种语言不是上下文无关的? 有什么技术可以证明这一点?显然,一种方法是展现该语言的上下文无关语法。是否有系统的技术来查找给定语言的无上下文语法? 对于常规语言中,有 系统的方法来得到一个正规文法/状态自动:例如,迈希尔-尼罗德定理提供了一种方法。上下文无关的语言是否有相应的技术? 在这里,我的动机是(希望)建立一个参考问题,其中包含一系列试图证明给定语言不受上下文限制时通常有用的技术。由于这里有很多问题是特殊情况,因此,如果我们能记录面对此类问题时可以使用的通用方法或通用技术,那就太好了。

4
如何证明语法是明确的?
我的问题是如何证明语法是明确的?我有以下语法: 小号→ 小号吨一吨ë 米Ë Ñ 吨| 如果 Ë X p - [R ë 小号小号我ø Ñ 然后 小号∣if expression then S else SS→statement∣if expression then S∣if expression then S else SS → statement ∣ \mbox{if } expression \mbox{ then } S ∣ \mbox{if } expression \mbox{ then } S \mbox{ else …

1
是否有任何可识别EPAL的非常规CFG解析算法?
EPAL,甚至回文的语言,被定义为以下明确的上下文无关语法生成的语言: S→aaS→aaS \rightarrow a a S→bbS→bbS \rightarrow b b S→aSaS→aSaS \rightarrow a S a S→bSbS→bSbS \rightarrow b S b EPAL是许多解析算法的“祸根”:我还没有遇到任何能够解析任何描述该语言的语法的CFG解析算法。它通常用于表明存在明确的CFG,而这些CFG无法被特定的解析器解析。这激发了我的问题: 是否有一些解析算法仅接受适用于EPAL的明确CFG? 当然,可以为语法设计一个临时的两次通过语法分析器,以线性时间解析语言。我对解析不是专门为EPAL设计的方法感兴趣。

1
如何显示L = L(G)?
通过提供正式的语法来指定正式的语言是一项常见的任务:我们不仅需要语法来描述语言,而且还要解析它们,甚至需要进行适当的科学学习。在所有情况下,重要的是手头的语法正确无误,即能准确生成所需的单词。 我们经常可以在较高层次上争论为什么语法可以充分表达所需语言,而没有形式化证明。但是如果我们出于某种原因有疑问或需要正式证明怎么办?我们可以应用哪些技术? 这应该成为参考问题。因此,请谨慎给出一般的,有说服力的答案,至少由一个例子说明了这一点,但仍然涵盖了许多情况。谢谢!


4
为什么左递归不好?
此问题是从理论计算机科学堆栈交换迁移而来的,因为可以在计算机科学堆栈交换上回答。 迁移 6年前。 在编译器设计中,为什么应在语法中消除左递归?我正在读这是因为它可能导致无限递归,但是对于正确的递归语法来说,它也不是真的吗?

1
线性无上下文语法的语言相等性可以决定吗?
让我们考虑两个与上下文无关的语法和并提出以下问题:,即,这两个语法是否等效?G1个G1个G_1G2G2G_2大号(ģ1个)= L (G2)大号(G1个)=大号(G2)L(G_1) = L(G_2) 通常,这个问题是无法确定的。但是,如果和都是左线性(或右线性)语法,则问题是可以确定的,因为两个语法都描述了常规语言。G1个G1个G_1G2G2G_2 我的问题是,当两个语法都是线性的时,是否可以确定相同的问题。此外,如果有人可以指向相关文献,将不胜感激!

1
如何将图灵机的识别语言转换为不受限制的语法?
根据Wikipedia的这篇文章,无限制语法等效于图灵机。这篇文章指出,我可以将任何图灵机都转换为无限制的语法,但是它仅显示了如何将语法转换为图灵机。 我确实如何做到这一点并将图灵机的识别语言转换为不受限制的语法?我曾尝试用语法规则替换过渡规则,但是图灵机也可以具有许多不同的状态配置...大号LL

2
上下文无关的语法中可以有“死态”吗?
上下文无关的语法可以包含自动机的“死态”吗? G = ( { a ,b ,c } ,{ A ,B ,C} ,{ A → a B ,B → b ,B → C,C→ c C} ,A )?G=({一种,b,C},{一种,乙,C},{一种→一种乙,乙→b,乙→C,C→CC},一种)?G = \big(\{a, b, c\}, \{A, B, C\}, \{A\to aB, B\to b, B\to C, C\to cC\}, A\big)\,? 生产规则和C → c C将永远循环,并且永远不会生成单词。这是允许的还是必须在某些时候以终端结束生产规则?B → C乙→CB\to …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.