令为上下文无关的语法。如果您可以通过将次数乘以零或多次到的开始符号上来获得的一串和的句子,则可以说它是一种句法形式。让是该组中的句型。摹摹
让,并让是的一个子 -我们称之为一个片段的。现在让
和
。
是和上下文无关语言?如果不含歧义怎么办?如果明确,是否也可以使用明确的上下文无关语言来描述和吗?
令为上下文无关的语法。如果您可以通过将次数乘以零或多次到的开始符号上来获得的一串和的句子,则可以说它是一种句法形式。让是该组中的句型。摹摹
让,并让是的一个子 -我们称之为一个片段的。现在让
和
。
是和上下文无关语言?如果不含歧义怎么办?如果明确,是否也可以使用明确的上下文无关语言来描述和吗?
Answers:
首先让我们对“ 和“ 之后” (β )有所了解。考虑一个包含β的推导树;这里的“包含”意味着您可以切除子树,以使β是树前的子词。然后,之前(之后)集合是树的β的左(右)部分的所有潜在前沿:
[ 来源 ]
因此,我们必须为树的水平线(垂直线)部分建立语法。这似乎很容易,因为我们已经对整棵树有了语法。我们只需要确保所有的句子形式都是单词(更改字母),过滤掉不包含那些词(因为β是固定的,这是常规性质),并删去β之后(之前)的所有内容,包括β。这种切割也应该是可能的。
现在要正式证明。我们将按照概述的方式转换语法,并使用闭包属性进行过滤和剪切,即,我们将执行非构造性证明。
令为上下文无关文法。不难发现SF (G )是上下文无关的;构造G ' = (N ',T ',δ ',N S)像这样:
用用于所有吨∈ Ť和α (甲)= Ñ 甲所有一个∈ Ñ。显然L(G ')= SF (G ) ; 因此相应的前缀闭包Pref (SF (G ))和后缀闭包Suff (SF (G ))也是上下文无关的¹。
现在,对于任何是大号(β (Ñ ∪ Ť )*)和大号((Ñ ∪ Ť )* β )正则语言。由于C F L在使用常规语言的交集和右/左商下是封闭的,因此我们得到
和
。
¹ 被下右(左)商关闭 ; Pref (L )= L / Σ ∗,对于Suff产量前缀表示类似。后缀关闭。
是的,和After(β )是上下文无关的语言。这就是我要证明的方式。首先,引理(症结)。如果L为CF,则:
和
是CF。
证明?对于构造一个非确定性有限状态变换器Ť β该扫描一个字符串,输出它看到每个输入符号,并且同时搜索非确定性为β。每当Ť β看到的第一个符号β它fork非确定性,并停止输出符号,直到它完成看到β或它看到看到一个符号,从偏离β,在任一情况下停止。如果牛逼β看到β完全,它在停止时接受,这是它唯一的接受方式。如果看到与的偏差,则拒绝。
引理可以jiggered处理情况下,可以与自身重叠(如一个b 一b -不断寻找β即使在扫描之中的前β)或出现多次(实际上,原非determinisic分叉已经可以解决这个问题)。
这是相当明显,,并且由于紧凑型荧光灯的下有限状态转导闭合时,前(大号,β )因此是CF.
也可以使用类似的参数,也可以使用Before(L ,β )中的字符串反转来完成,CFL也可以在反转时关闭:
实际上,现在我看到了逆向参数,从开始会更容易,因为用于此的转换器更易于描述和验证-在寻找β的同时输出空字符串。当找到β时,它将不确定地进行分叉,一个分叉继续寻找β的其他副本,另一个分叉从输入到输出逐字复制所有后续字符,并一直接受。
What remains is to make this work for sentential forms as well as CFLs. But that is pretty straightforward, since the language of sentential forms of a CFG is itself a CFL. You can show that by replacing every non-terminal throughout by say , declaring to be a terminal, and adding all productions to the grammar.
I'll have to think about your question on unambiguity.