指定给定语法的语言

时间:2013-10-01 23:15:13

标签: grammar regular-language dfa

DFA问题:为L写一个完整的语法,包括四重和生产规则

L ={x: ∃y ∈ {a, b}* : x = ay}

答案:

G={{S, A}, {a, b}, S, P}
P: S => aA
   A => aA | bA | λ

我的问题是:

  1. 为什么λA,但λ没有S
  2. 从语言定义来看,它是以a开头并且仅包含ab的任何字符串,但为什么在答案A => bA中。这不是说字符串以b开头A => bA吗?
  3. 非常感谢

1 个答案:

答案 0 :(得分:1)

  

1.为什么λA,但λ没有S

λ nul可以从A派生,将情感转换为句子。另外,根据语言语句,前缀子字符串y ∈ {a, b}*可以是nul(空字符串),例如"a"是属于该语言的字符串。如果y包含任何符号,则语言长度将超过一个。

S不会导出λ nul,因为空(或说nul字符串)不是语言。语言中最小的字符串是单"a"

  

2.从语言定义来看,它是以a开头并且仅包含ab的任何字符串,但为什么在答案中A => bA。这不是说字符串以b开头A => bA吗?

注意字符串可以从开始变量S派生的字符串包含在语法语言中。您无法从A开始派生(这不是起始变量)。如果您从S开始派生,则您的字符串将始终以a符号开头。

我建议你阅读:"Why the need for terminals? Is my solution sufficient enough?"我写的关于形式语法的基本定义。