串联&联盟 - 常规和无上下文的语言

时间:2014-01-29 06:37:30

标签: regular-language finite-automata automata context-free-language

给定L1上下文免费非常规语言。 鉴于L2常规语言。

L1 U L2是否可能是常规语言? 另外,L1 * L2可能是常规语言吗?

我认为第二个是不可能的。但我不确定。

如果上述陈述中的一个(或两者)是真的,我们很乐意看到一个例子。

3 个答案:

答案 0 :(得分:0)

  

L1 U L2 =常规语言是否可能?

是的,可能。

一个简单的例子是:如果L 1 是L 2 的子集,那么L1 U L2将是常规的(=L2),示例:L 1 :{anbn |其中n >= 0}和L2 = (a + b)*

  

L1 * L2 =常规语言可能吗?

不,无上下文和常规的连接将是无上下文的(因为在L1 * L2中,L1的模式中的约束仍然存在)。

添加引用:CS 273: Closure Properties for Context-Free Languages

答案 1 :(得分:0)

是的,无上下文和常规的连接将是常规的

取L1 = a ^ nb ^ n即CFL并取L2 =Ø这是常规的。

所以L1.L2 =(a ^ nb ^ n).Ø=Ø这是常规的

注意:对于两种语言的连接必须是常规的,  必须至少有一种语言是常规的。

答案 2 :(得分:0)

  

L1 U L2 =常规语言是否可能?

是的,有可能。 但总是最好举个例子:

L1 = {0*1*}(常规)和L2 = {0^n1^n |n>=0}(无上下文)。

L = L1 U L2 = {0*1*}是常规语言,但由于每种常规语言都是上下文无关的。因此,我们可以说两个总是在上下文无关的语言中产生的结果

  

L1·L2 =常规语言是否可能?

常规语言和上下文无关的语言的连接总是导致上下文无关的语言。再次以上述示例为例:

L = L1·L2 = {(0*1*)·(0^n1^n) |n>=0}(无上下文)。

如果L1L2中的一个为Ø,也可能是常规的,L1·L2将导致Ø(常规)。但是由于所有常规语言都是无上下文的,所以Ø也是无上下文的。

查看以下内容:Geeks for Geeks