鉴于以下语言:
L = { bi | i > 0 } U {aibi | i > 0 }
这种语言背景是免费的吗?定期?
我试过这个想法,但到目前为止没有结果......
答案 0 :(得分:1)
L =
{ bi | i > 0 } U {aibi | i > 0 }
是无上下文还是常规语言?
语言L是'上下文自由语言',在语言中L {aibi | i > 0 }
是字符串的子集,使L成为无上下文语言,这意味着如果字符串以a
开头,那么字符串应该相等 b
的数量(在前缀中),并且为了计算已经有多少a
s,我们需要一个PDS内存(这不能是使用FA的进程,因为有限的内存可用于F A)。
L的语法将是:
S --> A | B
B --> b | Bb
A --> ab | aAb
提示语法:字符串可以以b
开头,并且可以包含任意数量的b
(如果字符串以b
开头,则不允许a
。如果字符串以a
开头,则字符串模式应为{aibi | i > 0 }
。
我建议你读一下:“什么是常用语言?” What is basically a regular language? And Why a*b*
is regular? But language { anbn | n > 0 }
is not a regular language
答案 1 :(得分:0)
这可以通过使用泵浦引理或通过实现语言包含无数个成对可区分的字符串的事实来证明。内存有限的FSA不能接受相同的内容。
语言可以通过写一个CFG(由@Grijesh指出)来证明是一个CFL,它产生相同的效果,或者通过设计Push Down Automata。
除了使用指定语言的无上下文语言外: L = {b i |我> 0} U {a i b i |我> 0}
也是一种确定性的上下文无关语言。 确定性CFL是上下文自由语言的一个子集,它与CFL类不同,在赞美和交集下关闭。确定性CFL也在与常规语言的交集下关闭,这有助于我们证明给定的语言是DFCL。
L∪R=(L c ∩R c ) c