我有以下语法:
S --> LR .
L --> aL .
R --> bR .
该语法生成语言a ^ n b ^ k,其中n,k> k。 0。 我想要一个生成语言的语法a ^ n b ^ n,其中n> 0,所以 我的目标是获得一个语法,以确保a的数量总是等于b,但仍然保持非终端L和R.
有办法做到这一点吗?
答案 0 :(得分:0)
在。上下文免费语法中,L
中R
和S → L R
的派生彼此独立。这就是“无上下文”的含义:非终端的推导不受非终端发生的上下文的影响。
因此,如果你想要一个语法,其中L
和R
必须得到相等长度的字符串,那么它必须是一个上下文敏感的语法。没有上下文无关的语法可以做到这一点。
当然,该语言有一个简单的CFG:
S →
S → a S b