繁体   English   中英

这个CFG描述的语言是什么?

[英]What is the language described by this CFG?

这个CFG描述的语言是什么?

在此处输入图片说明

我们可以写出一些语言中最短的字符串来感受一下:

S -> aTb -> ab
S -> aTb -> aabb
S -> SS -> … -> abab
S -> SS -> … -> abaabb
S -> SS -> … -> aabbab

我们注意到,语法生成的唯一字符串将S每个实例都转换为abaabb 此外,我们可以仅使用S -> SS以中间形式获得任意数量的S 因此,这是常规语言(ab + aabb)+

证明是通过对字符串长度 n 进行归纳。

基本情况:最短的字符串 ab 和 aabb 在语言(ab + aabb)+ ,并由如上所示的语法生成。

归纳假设:语法生成的语言与长度为k所有字符串的语言(ab + aabb)+相匹配。

归纳步骤:我们必须证明由次高长度的语法生成的字符串在该语言中,而次高长度的语言中的字符串由该语法生成​​。 注意:语法只能生成偶数字符串,而语言(ab + aabb)+只包含偶数字符串,所以真正的下一个最高步骤是大于k的最小偶数。

  1. 我们知道长度为k字符串的语言和语法匹配。 设 X 为长度为 k 的语言的所有字符串的集合,Y 为长度为 k - 2 的语言的所有字符串的集合。 然后,语法通过修改中的字符串的派生生成一组字符串 X' X 使用生产S -> SS一次额外的时间,然后为刚刚引入的S实例选择S -> aTb -> ab 该语法还通过修改 Y 中字符串的派生来生成一组字符串 Y' 以使用产生式S -> SS一次额外的时间,然后为刚刚引入的S实例选择S -> aTb -> aabb 这些相同的字符串匹配正则表达式,因为 X 和 Y 中的字符串匹配,而 X' 和 Y' 只是添加了 ab 或 aabb 的那些字符串,这是 Kleene 星允许的。

  2. 类似地,匹配正则表达式的长度为 k 和 k-2 的字符串可以在末尾添加 ab 或 aabb(感谢 Kleene 星)以获得所有匹配的长度为 k+2 的字符串。 但是这些也必须由语法生成,因为前缀是由语法生成的,我们有生产(上面概述)允许我们向我们的派生字符串引入额外的 ab 或 aabb。

换句话说,语言是所有字符串的集合,这些字符串是以任意顺序连接任意数量的字符串 ab 和 aabb 的实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM