我正在为考试准备上下文无关的语法。我不明白为什么语言
{ a^n b^n | n>=0}是上下文无关的,但不是常规的。为什么它不是常规的?什么时候我们可以说一个表达式不是正则的?
谢谢
发布于 2010-01-13 15:17:34
如果一个表达式不能被regular expression或(等价地) finite state machine匹配(精确地),那么它就不是正则表达式。另请参见context free language和regular language。
发布于 2010-01-13 15:42:27
就像在前面的答案中所说的,它是上下文无关的,因为你可以用上下文无关的语法来表达它。
例如:S -> aSb | ε
它不是正则的,因为你不能用有限状态机或正则表达式来表达它。您应该能够计算A的数量,并检查B的数量是否匹配。这不能在有限状态下完成,因为n可以是任何值
发布于 2010-01-21 06:12:44
标准方法是使用Pumping Lemma
https://stackoverflow.com/questions/2055042
复制相似问题