关于Q1:歧义问题(给定CFG,是否模棱两可)和内在歧义问题(给定CFG,其语言本质上是否模棱两可,即任何等效CFG是否模棱两可)都是无法确定的。以下是原始参考资料:
关于Q2:常规语法是一种“单侧线性”上下文无关的语法,其中在规则右半部最多出现一个非终结符,并且该非终结符在最后一个(在正确的线性语法中)或第一个(在右边的语法中)出现。左线性语法)位置。这样的语法很容易转换为等效的有限状态自动机(大致通过将每个非终结符视为状态),如果常规语法是明确的,则它们是明确的。Stearns和Hunt(1985)特别研究了明确的规则语法和明确的自动机这一类,他们证明他们喜欢包含问题的易处理算法。
关于推导之间的关系(即,规则的应用序列其中甲→交通α是文法的规则)和推导树(即,其中一个标记为节点阿是节点的序列的父X 1,… ,X m,其中A → X 1 ⋯ X m是一个规则):在一般CFG中,可以有不同的派生,它们以不同的方式访问相同的派生树。β一个γ⇒ βα γA → α一种X1个,… ,X米A → X1个⋯ X米
发生这些不同的推导,因为一个具有在句子形式施加在两个不同的地方语法规则之间的选择:在一个句型具有至少两个非终结符甲和乙,可以应用阿→交通α第一和获得γ α η 乙θ,或乙→交通β第一和获得γ 甲η β θ,但应用其他规则将导致相同的γ α η β θ。气势最左边γ一个η乙θ一种乙A → αγα η乙θB → βγ一个ηβθγα ηβθ(始终以任何句法形式派生最左边的非终结符)或最右边的派生对访问派生树施加固定的顺序,然后给定派生树只有一个派生。
在一个线性上下文无关文法,不存在这样的选择,因为有至多一个在任何句型非终结,并且存在对于给定的派生树,这既是最左边和最右边的单个推导。
具有两个相同的产量(叶序)的不同解析树是w的定义不明确,在考虑常规语法时不会改变。或者,也可以要求两个不同的最左导数。请注意,单面语法的派生对应于其关联的有限状态自动机中的接受行程,该接受行程以完全相同的方式被称为歧义:当给定输入w存在两个不同的接受行程时。www
4. 如果采用有限状态自动机视图,就足以确定您的模棱两可的自动机,以便获得相同语言的模棱两可的自动机:任何给定的单词都将运行一次。这种确定性的自动机等效于明确的规则语法。
要回答您的评论:存在模棱两可的规则语法,例如具有用于最左边的两个推导一个:小号⇒ 甲⇒ 一个和小号⇒ 乙⇒ 一个。等价的明确语法为 S → a。小号→ A ∣ B ,A → a ,B → a一种小号⇒ 一个⇒ 一小号⇒ 乙⇒ 一个小号→ 一个
关于与Q1的关系:可以确定常规语法是否模棱两可(固有的歧义问题对常规语法不是很困难,因为即使不看输入语法,答案总是“否”)。可以在上对其关联的自动机进行平方运算来检查此情况:构造自动机与其自身的乘积,并查看具有q ≠ q '的某些状态(q ,q ')是否可访问且co -无障碍。我知道的最早的参考文献是Even(1965)的论文。O (| G |2)(q,q′)q≠ q′