【问题标题】:How can I derivate these Grammar我怎样才能推导出这些语法
【发布时间】:2021-08-31 22:19:03
【问题描述】:
G = (V={S,X,Y}, T={0,1,2},P,S)

S -> 0X1
X ->S | 00S2 | Y | ε
Y ->X | 1

问题是我不知道如何推导数字..

我怎样才能在这里推导这个: 00111 ∈ L(G)

在这里我必须给出推导三: 0000121 ∈ L(G)

【问题讨论】:

    标签: grammar generic-derivation


    【解决方案1】:

    要进行推导,请从开始符号(在本例中为 S)开始,它是语法元组中的第四项)。然后,您可以按照适合您的任何顺序应用生产规则 (P)。

    这样的制作:

    X → S | 00S2 | Y | ε
    

    表示您可以将X 替换为

    • S,或
    • 00S2,或
    • Y,或
    • 什么都没有。

    换句话说,您阅读生产规则如下:

    • 表示“可以替换为”。
    • | 表示“或”
    • ε 表示“无”(用无替换符号意味着将其从当前字符串中删除。)

    其他一切都只是字符串中的一个可能符号。你一直在做替换,一次一个,直到你找到你想要导出的字符串。

    这是一个简单的例子:

    S
     → 0X1      (using S → 0X1)
     → 000S21   (using X → 00S2)
     → 0000X121 (using S → 0X1)
     → 0000121  (using X → ε)
    

    就是这样。一点都不复杂。只是一堆搜索和替换操作。 (如果有多个可能性,则不需要替换第一个出现的位置。您可以按照自己喜欢的任何顺序进行替换。但是系统化很方便。)

    【讨论】:

    • 你是最棒的 :) 我现在明白了
    猜你喜欢
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-09
    • 2015-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多