DFA问题:为L写一个完整的语法,包括四重和生产规则
L ={x: ∃y ∈ {a, b}* : x = ay}
答案:
G={{S, A}, {a, b}, S, P}
P: S => aA
A => aA | bA | λ
我的问题是:
λ
有A
,但λ
没有S
? a
开头并且仅包含a
和b
的任何字符串,但为什么在答案A => bA
中。这不是说字符串以b
开头A => bA
吗?非常感谢
答案 0 :(得分:1)
1.
为什么λ
有A
,但λ
没有S
?
λ
nul可以从A
派生,将情感转换为句子。另外,根据语言语句,前缀子字符串y ∈ {a, b}*
可以是nul(空字符串),例如"a"
是属于该语言的字符串。如果y
包含任何符号,则语言长度将超过一个。
S
不会导出λ
nul,因为空(或说nul字符串)不是语言。语言中最小的字符串是单"a"
。
2.
从语言定义来看,它是以a
开头并且仅包含a
和b
的任何字符串,但为什么在答案中A => bA
。这不是说字符串以b
开头A => bA
吗?
注意仅字符串可以从开始变量S
派生的字符串包含在语法语言中。您无法从A
开始派生(这不是起始变量)。如果您从S
开始派生,则您的字符串将始终以a
符号开头。
我建议你阅读:"Why the need for terminals? Is my solution sufficient enough?"我写的关于形式语法的基本定义。