2.5.3文法二义性的消除
本章小结 A → 0A1 | ε P : S → 1S0 | 0A1 | ε 例5. 给出语言L={1n0m1m0n | n,m≥0}的 文法。 分析 根据语言句子的结构特征, 设计 出相应规则 L={ε,01,0011,…,10,1100,…,1010,100110, 110100} 本章小结 P : S → a | 0S0 | 1S1 例6. 给出语言L={WaWt | W∈{0|1}*,Wt 表示W的逆的文法。 分析 根据语言句子的结构特征,设计 出相应规则 L={a, 0a0, 1a1, 01a10, 10a01, 00a00, 11a11, 101a101, 110a011, 100a001, …} W={ε,0, 1 ,01, 10, 00, 11, 101, 110, 100, 111, …} 本章小结 2. 已知一个文法,确定该文法所定义的 语言。 (2) 给定一个文法,可根据语言和推导定 义推导出文法的句子,从而确定出该文法 所定义的语言。 (1) 文法所定义的语言 L(G[S])={x|S ?x且x∈VT*} * 本章小结 ①自然语言描述。 例如, L={x|x∈{a,b}+且x中a,b个数相同} ②式子描述。例如 L={a2nbb | n≥0}。 ③正规式描述。 (3) 语言可用 本章小结 例1 文法G[A]=({A},{a,b},{A→bA | a}, A) 所生成的语言是什么? 分析 ∵ A?bA?bbA?bbbA?…?bnA?bna ∴ L(G[A])={ bna | n≥0 } 本章小结 例2 文法G[N]为: N →ND | D D →0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 (1) G[N]所生成的语言是什么? (2) 给出句子0127的最左、最右推导。 本章小结 L(G[N])={α | α∈{0,1,2, …9}+} ={α | α为可带前导0的正整数} ={α | α为数字串}