这是什么意思?

时间:2014-03-07 15:54:16

标签: grammar context-free-grammar context-sensitive-grammar

这是语言:

L = { w belong {a,b,c}* | |w|= 3 * number(a) (w) }

然后,这是什么意思?

1 个答案:

答案 0 :(得分:3)

这意味着L是字符串w的语言,由符号'a''b''和'c'组成,其中字符串w的长度等于字符串'a'中符号w的3倍。

此语法的制作应该是这样的:如果它添加一个'a',那么它还会添加两个'b',或两个'c'或一个'b';一个'c'。检查下面的语法:

S → ^ | SaSMSM |  SMSaSM | SMSMSa   
M → b | c

此处^表示epsilon。

要生成aabbcc,请使用最正确的派生

  1. S→SaSMSM
  2. 使用S→^替换rhs中的第一个S. S→SaSMSM→aSMSM
  3. 更换S→SaSMSM
    S→SaSMSM→aSaSMSMMSM
  4. 使用S→^
    S→SaSMSM→aSaSMSMMSM→aaSMSMMSM
  5. 使用S→^
    S→SaSMSM→aSaSMSMMSM→aaSMSMMSM→aaMSMMSM
  6. M→b
    S→SaSMSM→aSaSMSMMSM→aaSMSMMSM→aaMSMMSM→aabSMMSM
  7. 使用S→^
    S→SaSMSM→aSaSMSMMSM→aaSMSMMSM→aaMSMMSM→aabSMMSM→aabMMSM
  8. M→b
    S→SaSMSM→aSaSMSMMSM→aaSMSMMSM→aaMSMMSM→aabSMMSM→aabMMSM→aabbMSM
  9. M→c
    S→SaSMSM→aSaSMSMMSM→aaSMSMMSM→aaMSMMSM→aabSMMSM→aabMMSM→aabbMSM→aabbcSM
  10. 使用S→^
    S→SaSMSM→aSaSMSMMSM→aaSMSMMSM→aaMSMMSM→aabSMMSM→aabMMSM→aabbMSM→aabbcSM→aabbcM
  11. M→c
    S→SaSMSM→aSaSMSMMSM→aaSMSMMSM→aaMSMMSM→aabSMMSM→aabMMSM→aabbMSM→aabbcSM→aabbcM→aabbcc