这是通过构建DFA找到常规语法的正确方法吗?

时间:2015-11-04 15:40:49

标签: context-free-grammar context-free-language

这是我的作业。

  

练习3:找到语言L = {a^n b^m |的常规语法n + m是奇数   数}。显示你获得它的方式。

问题要求表明我获得答案的方式。所以这是我的解释。

  

我们构建DFA
DFA来自DFA,我们得到了S.    - > aA | bA
A - > aS | bS | null

因此,常规语法为G = {V,T,S,P}
其中
V = {S,A}
T =   {a,b}
P = {S - > aA | bA,A - > aS | bS | null}

然而,下一个问题是:

  

构造一个接受语法生成的语言的DFA   练习3.如果可能,简化构造的DFA。

所以我认为绘制DFA不是练习3的预期解释。也许还有另一种方法可以在不绘制DFA的情况下获得常规语言。请告诉我。

谢谢。

1 个答案:

答案 0 :(得分:0)

首先构建一个(正确的)DFA是获得常规语法的完美方法。关键在于,在常规语法和DFA之间进行转换很容易,因为它们几乎完全相同地编码信息。

正如评论中指出的,您的DFA不对。你应该有这样的东西:

    var www = new WWW("http://Sameer.com/SampleVideo_360x240_2mb.mp4");
    var movieTexture = www.movie;

使用您的方法从中获取语法将给出正确的结果。请注意,“odd_a”和“odd_b”是接受状态。