形式语言自动——上下文无关文法与下推自动机(四).ppt
文本预览下载声明
College of Computer Science Technology, BUPT * College of Computer Science Technology, BUPT §4.5 上下文无关文法与下推自动机 上下文无关文法与下推自动机的等价性: PDA与上下文无关文法 之间存在着对应关系。即: PDA(M) = CFG CFG = PDA(M) * College of Computer Science Technology, BUPT 从上下文无关文法构造等价的下推自动机 定理4.5.1(由CFG可导出PDA): 设上下文无关文法G=(N,T,P,S),产生语言L(G),则存在PDA M,以空栈接受语言Lφ(M),使Lφ(M)=L(G)。 证明:构造下推自动机M,使M按文法G的最左推导方式工作。 * College of Computer Science Technology, BUPT 构造方法 设 CFG G = (N, T, P , S ) , 构造一个空栈接受方式的 PDA M=(Q,T,Γ,δ,q0,z0,F) 其中 Q={q}, Γ=N∪T, q0=q,z0=S, F=φ (∵以空栈接受) 即 M = ( {q} , T, N?T, ?, q, S , F) , 转移函数 ? 定义如下: (1) 对每一 A?N, ? (q, ?, A) = {(q,?)?A??”?P }; (即将栈顶的A换为β) (2) 对每一 a?T, ? (q, a, a) = { (q, ?) }. (即若栈顶为终结符,则退栈) 从上下文无关文法构造等价的下推自动机 * College of Computer Science Technology, BUPT q ε,z0=S/β 若S→β∈P ε,A/α 若A→α∈P a,a/ε a?T, 从上下文无关文法构造等价的下推自动机 用图形表示: 例1 对右边产生式所代表 CFG, 依上述方法构造的 PDA 为 E ? EOE ? (E) ? v ? d O ?+ ? ? ( {q} , {v,d,+, ?,(,) }, {E,O,v,d,+, ?}, ?, q, E, φ ) , 其中? 定义为 ? (q, ?, E) = {(q,EOE), (q,(E)), (q,v),(q,d)}, {(q,+), (q, ?)}, ? (q, ?, O) = { (q, ?) }, ?(q, v, v) = ? (q, d, d)= { (q, ?) } ? (q,+,+) = ? (q, ?, ?) = ? (q,(,( ) = ? (q,),) )= * College of Computer Science Technology, BUPT 自顶向下的分析过程 定理的物理意义:利用下推自动机进行自顶向下的分析, 检查一个句子的最左推导过程。 步骤如下: (1) 初始时,将文法开始符号压入空栈. (2) 如果栈为空,则分析完成. (3) 如果栈顶为一非终结符,先将其从栈中弹出. 选择下 一个相应于该非终结符的产生式,并将其右部 符号从 右至左地一一入栈. 如果没有可选的产生式,则转出 错处理. (4) 如果栈顶为一终结符,那么这个符号必须与当前输入 符号相同,将其弹出栈,读下一符号,转第(2)步;否 则,回溯到第(3)步. * College of Computer Science Technology, BUPT 例2:利用下推自动机进行自顶向下的分析过程 E ? EOE ? (E) ? v ? d O ?+ ? ? E E O E E O v E O E ? E E ) ( E ) E ) O E E ) O v E ) O E ) + E ) ) d ) v ? ( v + d ) q ε,z0=E/β 若E→β∈P ε,O/* a,a/ε a ? {(,),v,d,+,* } ε,O/+ * College of Computer Science Technology, BUPT 定理的证明 证明思路 欲证,对任何 w?T*, w?L(G) ?w?L(M). ? 先证明如下结论, if A ?w, then (q,w,A)├*(q, ?, ?). ? 归纳于 A
显示全部