形式语言自动机——上下文无关文法和下推自动机.pptVIP

  • 2
  • 0
  • 约7.48千字
  • 约 25页
  • 2019-11-20 发布于广东
  • 举报

形式语言自动机——上下文无关文法和下推自动机.ppt

* * * * * * * * * * * * College of Computer Science Technology, BUPT * College of Computer Science Technology, BUPT §4.3 Chomsky范式和Greibach范式 Chomsky范式定义: 2型文法G=(N,T,P,S),若生成式形式都是A→BC和A→a,A、B、C∈N,a∈T,则G是Chomsky范式。若ε∈L(G),则S→ε是P的一个生成式,但S不能在任何其它生成式的右边。 每个上下文无关文法都具有等效的CNF(定理4.3.1) * College of Computer Science Technology, BUPT CNF 的构成步骤 1. 用算法1、2、3、4消除ε生成式、无用符号、单生成式 2. 对生成式A→D1D2…Dn n≥2 若Di∈T,则引入新生成式Bi→Di,Bi是新非终结符 若Di∈N,则令Bi=Di,从而将原生成式变化为 A→B1B2…Bn n≥2 当n2 时,再将其变为 A→B1C1,C1→B2C2,C2→B3C3,…,Cn-1→Bn-1Bn Ci是新引入的非终结符。 定理证明――自学 * College of Computer Science Technology, BUPT CNF 的构成例 例: (书P148 例1) 设G=({A,B,S},{a,b},P,S)是无ε、无循环、无无用符号、无单生成式的文法。 P:S→aAB∣BA A→BBB∣a B→AS∣b 求等效的CNF G1 解:∵ S→BA,A→a,B→AS, B→b已是CNF ∴ 加入到P1中 对S→aAB,将其变换为 S→CaC1,Ca→a,C1→AB 将A→BBB变换为 A→BC2,C2→BB. * College of Computer Science Technology, BUPT CNF 的构成例 例: 2型文法G=({A,B,S},{a,b},P,S) P: S→bA∣aB A→bAA∣aS∣a B→aBB∣bS∣b 求等效的CNF 解:S→CbA∣CaB,增加Cb→b,C2→a A→CbD∣CaS∣a,增加D→AA B→CaE∣CbS∣b,增加E→BB * College of Computer Science Technology, BUPT Greibach范式 Greibach范式 (GNF)定义: 2型文法G=(N,T,P,S),若生成式的形式都是A→aβ,A∈N,a∈T,β∈N*,且G不含ε生成式,则称G为Greibach范式,记为GNF。 任何2型文法都具有等效的GNF(定理4.3.2) * College of Computer Science Technology, BUPT GNF 的构成步骤 1. 将2型文法变换为CNF。(A→a,A→BC形式) 2.将非终结符排序,再进行代换。 对形如Ai→Ajβ(ji)的生成式进行代换,直至使 Ai→Alβ(li)。 3.消左递归。 对最高的An→Anγ进行变换,使An生成式变为终结符开头。 4.回代。 将An生成式回代入An-1生成式,使其右部首符为终结符, 将An-1生成式回代入An-2生成式,使其右部首符为终结符 … 5. 最后将消直接左递归时引入的A1’、 A2’、…An’生成式右部进行代换。使其首符变为终结符。 * College of Computer Science Technology, BUPT GNF 的构成例 例: (书P149 例2) 设已有CNF: A→BC, ① B→CA∣b, ② C→AB∣a, ③ 将其变换为GNF。 解: ⑴ 按其非终结符排列为A、B、C,A是低位,C是高位。 ⑵ ∵ ①、②中,右部首符序号高于左部的非终结符 ∴ 无需变换。 对③,需要变换, 将①代入③得 C→BCB∣a ④, 仍需变换, 将②代入④得 C→CACB∣bCB∣a ⑤ * College of Computer Science Technology, BUPT GNF 的构成例 ⑶ 对上述变换后所得结果消直接左递归 对C→CACB∣bCB∣a 变换为 α1 β1 β2 C→β1∣β2∣β1C’∣β2C’ C’→ α1∣α1 C’ 即

文档评论(0)

1亿VIP精品文档

相关文档