【问题标题】:description of the language accepted by S->SS|bS|aS->SS|bS|a 接受的语言描述
【发布时间】:2022-01-07 19:19:07
【问题描述】:

我想知道这个CFG生成的是什么语言

S → SS | bS | a

我获得了一些字符串,但找不到模式

abbaaaa
aaaaaaa
ba
aaaaa
aaaaaaabaaaabbaa
babaaabaaaba
bbbababaababaa
baabaa
baa
aaaaaabbaaabbba

【问题讨论】:

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


    【解决方案1】:
    • 此语法不会生成 epsilon;
    • S 生成的最小长度字符串为"a"。同样S生成的最后一个字符也是a
    • bS 表示 ifb 在字符串 then 后面必须有更多的字符(因为语法不会生成 epsilon)。这些字符可能更多b,但最终a 必须跟随(如前所述)。也就是n 乘以b,其中n >= 0
    • 由于SS,该语言允许此零个或多个b 字符后跟一个a 重复(无限次(k))。

    语言 L 应该是这样的(其中 Sigma 是字母表):

    这可以写成这样的正则表达式:

    【讨论】:

    • 语言由正则表达式(a|b)*a产生;我会把这个集合简单地写成{ ω a | ω ∈ Σ* }。并不是你的错误,但所有这些下标指数似乎都是不必要的。
    • 有可能。我发现它更详细,并且与文本中的解释更相关。我认为最短的正则表达式是(b*a)+
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-08
    • 2019-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多