例:G=( VVP S) VN=S,B,C V=a, b, c) P:①S→aSBC②CB→BC③S→abC④bB→b ⑤bC→bc⑥cCcc 1S2→少1aSBC2,bBλ→bλ 对于S→aSBC ∵:a1=λ,a2=λ,A=S,B=aSBC,并且 Slasc ∴符合1型文法规则 对于bB→bb a1=b,a2=λ,A=B,B=b,并且B|≤b 也符合1型文法规则 产生式都符合1型文法的要求
例:G = (VN ,VT , P, S) VN = {S, B, C} VT = {a, b, c} P: ① S→aSBC ② CB→BC ③ S→abC ④ bB→bb ⑤ bC→bc ⑥ cC→cc λ1 Sλ2→λ1 aSBCλ2 , bBλ→bbλ 对于S→aSBC ∵α1 = λ, α2 = λ, A = S, B=aSBC,并且|S|<|aSBC| ∴ 符合1型文法规则 对于bB→bb ∵α1 = b, α2 = λ,A = B, B=b,并且|B| ≤ |b| ∴ 也符合1型文法规则 产生式都符合1型文法的要求
S→→>aSBC→→ aabCBc→→ abbbCo→ aabbCo→> aabbcC→→ aabbcc X-a b 此文法G可产生的语言:L(G)={a"n-1,2} 假设基元 a 语言L(G)可以描述不同的三角型 XE abc X=a2b2c2 b a
S→aSBC→aabCBC→abbBCC→aabbCC→aabbcC→aabbcc ∴X=a2b 2c 2 此文法G可产生的语言:L(G)={anb nc n |n=1,2...} 假设基元 语言L(G)可以描述不同的三角型 X= abc X= a2b 2c 2 a b c ① ③ ② ④ ⑤ ⑥ a b c c c b b a a
2.2型文法(上下文无关文法) 设文法G=( VVPS) 产生式P:A→B其中A∈VN(且是单个的非终止符) β∈V+(可以是终止符,非终止符,不能是空格) 对产生式的限制比较严格 由上下文无关文法构成的语言称为上下文无关语言 例:文法G=( VPS) is,B, C) P:①S→aB②S→bA③A→a④A→aS ⑤A→bAA⑥B→b⑦B→bS⑧B→→aBB
2 . 2型文法(上下文无关文法) 设文法G = (VN ,VT , P, S) 产生式P:A→β 其中A∈VN(且是单个的非终止符) β∈V+ (可以是终止符,非终止符,不能是空格) 对产生式的限制比较严格 由上下文无关文法构成的语言称为上下文无关语言。 例:文法G = (VN ,VT , P, S) VN = {S, B, C} VT = {a, b} P: ① S→aB ② S→bA ③ A→a ④ A→aS ⑤ A→bAA ⑥ B→b ⑦ B→bS ⑧B→aBB
①,aB→abS→abaB→abab abbA→→abba ②"bA→baS→baaB→baab ②babA→baba 例:G=( VLVPS) is, t,Fi Vr={a,+,*(,) P:①S→s+T②S→T③T→T*F④T→F ⑤F→(S)⑥F→a ⑥ S→S+T→T+T→F+T→a+T→a+T*F→a+F*F→a+a*F→→a+a*a
aB→abS→abaB→abab S abbA→abba bA→baS→baaB→baab babA→baba 例:G = (VN ,VT , P, S) VN = {S, T, F} VT = {a, +,*,(,)} P: ① S→S+T ② S→T ③ T→T*F ④ T→F ⑤ F→(S) ⑥ F→a S→S+T→T+T→F+T→a+T→a+T*F→a+F*F→a+a*F→a+a*a ① ⑦ ③ ④ ③ ⑥ ⑥ ① ① ② ② ② ① ② ④ ⑥ ③ ④ ⑥ ⑥
两种方法替换非终止符: ①最左推导:每次替换都是先从最左边的非终止符开始, 例如上边的例子。我们经常采用最左推导 ②最右推导:每次替换都是先从最右边的非终止符开始, 例如:S→S+T→S+F→S+a→T+a→F+a→a+a
两种方法替换非终止符: ① 最左推导:每次替换都是先从最左边的非终止符开始, 例如上边的例子。我们经常采用最左推导。 ② 最右推导:每次替换都是先从最右边的非终止符开始, 例如: S→S+T →S+F →S+a → T+a → F+a → a+a