Questions tagged «ambiguity»


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 …

2
什么时候两种常规语言的连接才是明确的?
由于语言的和乙,让我们说,他们的级联一乙是明确的,如果所有的单词w ^ ∈ 一乙,恰好有一个分解w ^ = 一b有一个∈ 一和b ∈ 乙,和暧昧否则。(我不知道该属性是否存在一个确定的术语,这很难搜索!)作为一个简单的示例,{ ε ,a }与自身的串联是不明确的(w = aAAABBBABABABw∈ABw∈ABw \in ABw=abw=abw = aba∈Aa∈Aa \in Ab∈Bb∈Bb \in B{ε,a}{ε,a}\{\varepsilon, \mathrm{a}\}),但的级联 { 一个 }与本身是明确的。w=a=εa=aεw=a=εa=aεw = \mathrm{a} = \varepsilon \mathrm{a} = \mathrm{a} \varepsilon{a}{a}\{\mathrm{a}\} 是否有一种算法来确定两种常规语言的连接是否明确?

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
如何从Earley向量重建语法树森林?
使用Earley向量作为识别器非常简单:到达字符串的末尾时,您只需检查从位置0开始的已完成的公理化生产。如果您至少有一个,则接受该字符串。 使用Earley向量重建解析树不太明显。实际上,我无法弄清楚算法程序的工作方式,而且我发现的唯一参考文献要么含糊不清,要么含糊不清。有人可以阐明吗?
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.