语言是由下一个条件定义的无限链。
条件:
1) The language chains may consist of symbols from the set {1,a,b}.
2) The language chains always start from subchain '1a'.
3) Every languange chain has to include at least one subchain 'aa'.
例如:
1aa, 1abaa, 1aaab, 1aab1a, ... etc.
形式语言中的正则表达式似乎是这样的:1a((1 + b)* a)*(a(1 + b)) a(1 + b + a)*
这种语言的正确语法是什么?
我想过很多方法,但对我来说似乎太复杂了。我猜这个解决方案也不正确。
G ({1,a,b}, {A,S}, P, S)
P:
S -> 1S|bS|aA
A -> 1A|bA|1a
答案 0 :(得分:1)
正则表达式应该比你制作它更容易;怎么样:1a(1 + a + b)* aa(1 + a + b)*
鉴于此,常规语法也不算太差:
S := 1R
R := aT
T := 1T
T := bT
T := aU
U := 1T
U := bT
U := aV
V := 1V
V := aV
V := bV
V := 1
V := a
V := b
如果我没有犯下愚蠢的错误,应该这样做。