Questions tagged «formal-grammars»

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


3
语法LL(1)怎么样?
这是《龙书》中的一个问题。这是语法: S→AaAb∣BbBaS→AaAb∣BbBaS \to AaAb \mid BbBa A→εA→εA \to \varepsilon B→εB→εB \to \varepsilon 问题问如何显示它是LL(1)而不是SLR(1)。 为了证明它是LL(1),我尝试构造它的解析表,但是在一个单元格中有多个生成,这是矛盾的。 请告诉我们LL(1)怎么样,如何证明它?

2
查找上下文无关语法生成的语言
这是《龙书》中的一个问题(对于翻译错误,我深表歉意,我手头没有英文版本): 该语法生成​​什么语言? 小号→ 一个小号b 小号∣ b S一个小号| εS→aSbS∣bSaS∣ϵS \rightarrow a S b S \mid b S a S \mid \epsilon 我不知道该怎么办。书中有关语言的定义说明了这一点(本章中的内容差不多): 语言是任何解析树都可以产生的所有单词的集合。 因此,如果我想根据这种语法制作“任何”解析树,则可以仅使用前两个规则来递归地继续构建它。我搜索了一下,并得出了每个规则都必须使用一次的印象,但是我不确定。如果有人能够提供一些解决此类问题的技巧,那将非常有帮助。

1
推断优化类型
在工作中,我的任务是推断一些有关动态语言的类型信息。我将语句序列重写为嵌套let表达式,如下所示: return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x then { T; Z } else { F; Z } 由于我从一般类型信息开始,并试图推断出更具体的类型,因此自然的选择是精简类型。例如,条件运算符返回其真假分支类型的并集。在简单的情况下,它效果很好。 但是,在尝试推断以下类型时遇到了障碍: function …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

2
如何证明这种语言不是上下文无关的?
我有以下语言 {0i1j2k∣0≤i≤j≤k}{0i1j2k∣0≤i≤j≤k}\qquad \{0^i 1^j 2^k \mid 0 \leq i \leq j \leq k\} 我正在尝试确定它适合哪种Chomsky语言课。我可以看到如何使用上下文相关的语法实现它,因此我知道它至少是上下文相关的。似乎没有上下文无关的语法是不可能的,但是我在证明这一点上遇到了问题。 这似乎是通过了分叉抽取的引理,因为如果将全部放在任何单词的第三部分(包含所有uvwxyuvwxyuvwxy222 s的部分)中。它可以根据需要将和x泵抽多次,并且将保留该语言。如果我错了,你能告诉我为什么吗,如果我是对的,我仍然认为这种语言不是上下文无关的,那么我怎么证明呢?vvvxxx

3
具有语法
谁能启发我,为什么尝试回溯产生式和(按顺序)的带有回溯的递归下降解析器不能识别语法形成的语言。小号→ 一个一个小号→ 一个小号一个| 一个一个小号→ 一个小号一个小号→一个小号一个S \rightarrow aSa小号→ 一个一个小号→一个一个S \rightarrow aa小号→ 一个小号一个| 一个一个 小号→一个小号一个 | 一个一个S \rightarrow aSa\ |\ aa 它似乎只能解析语言单词。{ a2ñ | Ñ≥1 }{a2ñ | n≥1个}\{a^{2^n}\ |\ n \ge 1 \} 我使用具有生产规则的ABNF Parser Generator生成了这样的解析器,例如,S = "a" S "a" / "aa"解析器无法识别单词aaaaaa。 我希望它使用生产,直到解析树的终端节点从7左边开始串联的,然后去分析树选择生产小号→ 一个一个来代替,直到树看起来像这样:小号→ 一个S一个小号→一个小号一个S \rightarrow aSaa小号→ 一个一个小号→一个一个S \rightarrow aa S / …

3
决定性的语言和不受限制的语法?
图灵机和不受限制的语法是定义RE语言的两种不同形式。某些RE语言是可以决定的,但并非全部。 我们可以用图灵机定义可判定的语言,方法是说一种语言是可判定的,前提是该语言有一个TM可以停止并接受该语言中的所有字符串,然后停止并拒绝该语言中不存在的所有字符串。我的问题是:是否存在基于无限制语法而非图灵机的可判定语言的类似定义?

1
Shift-解析解析-问题
我最近遇到了一篇描述标题中提到的解析技术的论文。不幸的是,上述论文中使用的术语超出了我的理解范围,因此我一直在尝试更直观地理解构造算法。我相信我成功了(本次演讲是啊哈时刻的源头),但是不胜感激的是,无论是熟悉该技术还是其中所包含的术语的人,都可以对其进行验证。 我将描述我对解决方案的看法(如果正确的话,我相信它可能会对尝试理解该技术的其他人有所帮助),然后再提出其他问题。为了确保有没有误会,我将使用下列标准符号:,甲,乙,Ç ,。。。∈ Ñ,。。。X ,ÿ ,ž ∈ Ñ ∪ Ť,α ,βa,b,c,...∈Ta,b,c,...∈Ta, b, c, ... \in TA,B,C,...∈NA,B,C,...∈NA, B, C, ... \in N...X,Y,Z∈N∪T...X,Y,Z∈N∪T... X, Y, Z \in N \cup T和,如在造纸,甲我 →交通 ω表示规则号我。但是,对于概念,我可能会使用与原始论文不同的名称。α,β,γ,...∈{N∪T}∗α,β,γ,...∈{N∪T}∗\alpha, \beta, \gamma, ... \in \{N \cup T\}^*A→iωA→iωA \xrightarrow{i} \omegaiii 此外,在整个说明书中,等价关系被使用。κ0κ0\kappa_0 施工 解析自动机内部有两种类型的项目:形式的简单LR(0)项目(我称之为移位项目) 和A i → α ∙ β ,m ,n形式的我称为解决项目项目 …

1
给定一个字符串和一个CFG,可以在字符串之后跟随哪些字符(以CFG的句子形式)?
令是某些上下文无关文法G的终结符集合,N是非终结符符号G的非终结符集合。ΣΣ\SigmañNNGGG 说我有一个字符串,使得X 一Ý ∈ 小号(ģ )其中X ,ÿ ∈ (Σ ∪ Ñ )*和小号(ģ )是的句型ģ。一个∈ (Σ ∪ Ñ)+a∈(Σ∪N)+a \in (\Sigma \cup N)^+X 一ÿ∈ 小号(G )xay∈S(G)x a y \in \mathcal{S}(G)X ,ÿ∈ (Σ ∪ Ñ)∗x,y∈(Σ∪N)∗x,y\in (\Sigma \cup N)^*小号(G )S(G)\mathcal{S}(G)GGG 鉴于,我想以确定一组C ^ = { b | 瓦特一个b ž ∈ 小号(ģ ),b ∈ Σ ∪ Ñ …

5
给定一组有限的有限字符串,是否存在已知的构造语法的方法?
从我的阅读看来,大多数语法都与生成无限数量的字符串有关。如果您采用其他方法怎么办? 如果给定n个长度为m的字符串,那么应该有可能生成一个将生成这些字符串以及仅这些字符串的语法。 有已知的方法吗?理想情况下,我可以研究一种技术名称。或者,我将如何进行文献搜索以找到这种方法?

2
除了“最接近匹配”之外,还有其他解决“悬而未决”问题的方法吗?
以下上下文无关文法呈现出“悬空别的”型歧义(想象代表和代表和代表一些其他类型的指令或块): 例如,可以将解析为或(这是该语法中最简单/最短的歧义词)。b c Sa一个aif expr thenbbbelsecCc aacbc(a(acbc))(a(ac)bc)S→aSbS|aS|c小号→一个小号b小号|一个小号|C \begin{aligned} S &\rightarrow aSbS \;|\; aS \;|\; c\\ \end{aligned} aacbc一个一个CbCaacbc(a(acbc))(一个(一个CbC))(a(acbc))(a (a c )b c )(一个(一个C)bC)(a(ac)bc) 解决这种“悬而未决”的歧义的“标准”方式迫使“其他”()语句与最接近/最内的“如果-那么”()配对。这可以通过以下方式完成: 这个语法是明确的。在上面的示例中,它强制执行解析。一个小号bbb一个一个a(a(acbc))小号Ť→ 一个Ťb 小号|一个小号|C→ 一个Ťb Ť|C小号→一个Ťb小号|一个小号|CŤ→一个ŤbŤ|C \begin{aligned} S &\rightarrow aTbS \;|\; aS \;|\; c\\ T &\rightarrow aTbT \;|\; c\\ \end{aligned} (a (a c b c ))(一个(一个CbC))(a(acbc)) 问题:是否存在另一种自然方法来解决会导致解析?换句话说,我正在寻找一种语法,该语法生成​​与上述两种语言相同的语言,并且语言明确,并且将解析为。(a (a …

1
允许无限数量的规则的CFG有多强大?
我最近想知道如果我们允许无上下文语法具有无限数量的规则会发生什么。显然,如果我们允许任意这样的无限规则集,则某个字母每种语言都可以用CFG其中。但是,如果我们将限制为可以由上下文无关文法创建的规则集呢?LLLΣΣ\SigmaG=({S},Σ,R,S)G=({S},Σ,R,S)G = (\{S\},\Sigma,R,S)R={S→w∣w∈L}R={S→w∣w∈L}R = \{S \rightarrow w \mid w \in L \}RRR 为此,给定一组非终结符和终结符,让我们将规则不视为元素,而是视为字母字符串。现在我的问题是,如果我们将无限规则CFG定义为元组,其中NNNΣΣ\SigmaN×(N∪Σ)∗N×(N∪Σ)∗N \times (N\cup \Sigma )^*R(N,Σ)=N∪Σ∪{→}R(N,Σ)=N∪Σ∪{→}R_{(N,\Sigma)} = N \cup \Sigma \cup \{\rightarrow\}G=(N,Σ,R,S)G=(N,Σ,R,S)G = (N, \Sigma, R, S) NNN是非终结点的有限集 ΣΣ\Sigma是一个有限字母 RRR是格式为一组规则,其中,,使得在上存在一些CFGA→wA→wA \rightarrow wA∈NA∈NA \in Nw∈(N∪Σ)∗w∈(N∪Σ)∗w \in (N \cup \Sigma)^*G′G′G'R(N,Σ)R(N,Σ)R_{(N,\Sigma)}R=L(G′)R=L(G′)R = L(G') S∈NS∈NS \in N是初始非终结点 我们为这种无限规则CFG 定义了,就像对CFG所做的那样,无限规则CFG生成的语言类别(让我们称之为),上下文无关语言的类别之间是什么关系?和类?L(G)L(G)L(G)irCFirCFirCFCFCFCFRERERE 显然,我们有,但是等效于这些类之一(或其他一些类)?CF⊆irCF⊆RECF⊆irCF⊆RECF \subseteq irCF \subseteq …



1
算术表达式语法转换
在Theodore Norvell(1999)的文章“ 递归下降解析表达式”中,作者从算术表达式的以下语法入手: E --> E "+" E | E "-" E | "-" E | E "*" E | E "/" E | E "^" E | "(" E ")" | v 这很糟糕,因为它是模棱两可的并且是左递归的。因此,他从移除左递归开始,其结果如下: E --> P {B P} P --> v | "(" E ")" | U P B …
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.