如何将无上下文语法转换为DFA?如果我们有像这样的过渡,这很容易 A-> a B.但是当我们将转换作为A-> a B c时。那么我们应该如何将其表示为DFA
答案 0 :(得分:0)
首先,您应该将语言转换为CNF (Chomskey Normal Form)。 然后转换步骤如下:
将其转换为左/右语法称为常规语法。
Convert the Regular Grammar into Finite Automata 自动机的转换如下获得 对于每个生产A - > aB使δ(A,a)= B成为a,从A到B标记为'a'。 对于每个生产A - > a使δ(A,a)=最终状态。 对于每个生产A - > ε,使δ(A,ε)= A,A为最终状态。
答案 1 :(得分:0)
没有将任意 CFG 转换为 DFA 的通用程序。例如,考虑这个 CFG:
<块引用>S → aSb | ε
此语法适用于语言 { anbn | n ≥ 0 },这是一种规范的非正则语言。由于我们只能为常规语言构建 DFA,因此无法构建与此 CFG 相同语言的 DFA