【问题标题】:Is it possible for an ambiguous CFG to convert into GNF?模棱两可的 CFG 是否可以转换为 GNF?
【发布时间】:2022-01-02 19:40:12
【问题描述】:
所以我正在研究如何将 CFG 转换为 GNF,并尝试使用我的名字中的字母来实现,因此生产规则如下:-
A->AkS|SA
S->AtA
其中 S,A 是非终结符,k,t 是终结符
但这是一个模棱两可的 CFG,那么我们可以将其转换为 GNF 吗?
【问题讨论】:
标签:
context-free-grammar
automata
finite-automata
context-free-language
automata-theory
【解决方案1】:
是的,any CFG 可以转换为 Greibach 范式中的等价文法。如果原始文法是模棱两可的,那么转换后的文法也是模棱两可的,但反过来不一定正确;转换可能会引入歧义。
上述声明假设您使用的是宽松的 GNF 定义,它允许产生式 S→ε,但仅适用于开始符号 S。对于 GNF 的严格定义,只有不能导出 ε 的文法才能进行变换;严格的 ε 消除将导致语法识别除 ε 之外的原始语法所识别的每个句子。