【发布时间】:2016-02-15 22:13:32
【问题描述】:
我刚参加了期中考试,但无法回答这个问题。
为以下语言构建语法 L={(a* ba* ba*)*}
【问题讨论】:
-
嗯——这不是你的语法吗?
标签: grammar context-free-grammar computation-theory
我刚参加了期中考试,但无法回答这个问题。
为以下语言构建语法 L={(a* ba* ba*)*}
【问题讨论】:
标签: grammar context-free-grammar computation-theory
最外层的规则是 Kleene 闭包,*。括号内的内容本身就是一种语言。这为我们的语法提出了以下产生式:
S := e
S := SL
这里,e 是空字符串,L 是生成与括号内的正则表达式对应的语言的语法的开始符号。
现在我们的语言是以任意数量的as 开头,然后是b,然后是任意数量的as,然后是b,然后是任意数量的@987654329 @s。我们可以先定义“任意数量的as”:
A := e
A := Aa
然后L的定义就很简单了:
L := AbAbA
因此完整的语法是:
S := e
S := SL
L := AbAbA
A := e
A := Aa
【讨论】: