这个练习有点问题。
鉴于这个语法:
S -> aX | X
X -> aXb | b | eps
a)表明它与字符串
不明确b)说出什么语言捕获语法
c)更改语法并构建后代解析器
我的解决方案:
a)我用字符串' ab '
显示模糊不清- S -> aX -> ab
- S -> X -> aXb -> ab
b)语法捕获这种语言:
L = {a^n b^n: n >= 0} U {a^n b^m: n=m+1, n,m >= 0} U {a^n b^m: m=n+1, n,m >= 0}
c)我的问题是改变语法来构建解析器。我尝试不同的语法,但它们也含糊不清。 例如:
- G -> X$
X -> aX' | b | eps
X' -> XB | eps
你能帮我找一个正确的练习语法或给我一个输入吗?
答案 0 :(得分:-1)
正如你所知道的,语言
S -> X | a S b
可以被描述为“由相同数量的a
s和b
s包围的X的实例”。 X
这里是递归的基础。
正如您所建立的那样,目标语言每个字母的数量相同,或者一个字母中的一个字母。所以我们可能会问,“X
的简单定义可以产生这种语言吗?”