如果我从字母表中删除一个字符,如何证明语言是无上下文的?

时间:2016-05-27 14:21:09

标签: compiler-construction computation compiler-theory

假设我们有一个无上下文的语言L,其中“a”属于其字母表。如何证明删除L(f.e. abbac - > bbc)生成的字符串中字符'a'的所有实例的语言ERASEa(L)仍然是无上下文的?提前谢谢!

1 个答案:

答案 0 :(得分:0)

我的方法是,如果L是无上下文语言,则存在一些语法G =(V,Σ,R,S)。端子组V和起始符号S保持不变。终端集Σ变为Σ'=Σ - 'a'。最后,该组生产规则关系R = V - >修改(V∪)* *使得R'= V - > (V∪'')*其中R'中的规则只是R中删除了'a'的规则。由于G'=(V,Σ',R',S)是有效的CFG,因此没有'a'的L是无上下文的语言。