【问题标题】:BNF grammar matchingBNF 语法匹配
【发布时间】:2010-10-09 11:18:52
【问题描述】:

我的老师给了我两个 bnf 语法:

A ::= 'd' | A 'e' A | A 'f' A
B ::= 'd' | B B 'e' | B B 'f'

还有四个与之匹配的字符串:

  • dffd
  • dddefddfe
  • ddf
  • 专用

我想出了其中两个,但另外两个让我难过。我不希望任何人告诉我答案,但如果有人能给我一些关于我哪里出错的提示,我将不胜感激。

【问题讨论】:

    标签: grammar bnf


    【解决方案1】:

    嗯……

    通过归纳,所有匹配必须有奇数个字符。所以这4个字符串都不能命中...


    哦,等等。我刚刚注意到第一条规则中的“Y”。我们知道那是什么吗?它可能会打破我的论点...

    【讨论】:

    • 谢谢,我主要关注那些,因为我认为它们会更容易;一旦我跳过它们,我就得到了另外两个。我想我会问老师这些。
    【解决方案2】:

    这是一个上下文无关的语法,所以你应该寻找一个解析树。然后,您可以查看哪个非终结符导致哪个产生的字符串。这些语法相当简单,因此绘制解析树应该很容易手工完成。

    【讨论】:

      【解决方案3】:

      我的建议是在编写任何代码之前为自己绘制一个有限自动机或状态图。先用铅笔和纸手工完成。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多