- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
§4.5上下文无关文法与下推自动机
fall 2001 §4.5 上下文无关文法与下推自动机 上下文无关文法与下推自动机的等价性: PDA与上下文无关文法之间存在着对应关系。即: PDA(M) = CFG CFG = PDA(M) 从上下文无关文法构造等价的下推自动机 定理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, ?) }. (即若栈顶为终结符,则退栈) 从上下文无关文法构造等价的下推自动机 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,),) )= 自顶向下的分析过程 定理的物理意义:利用下推自动机进行自顶向下的分析, 检查一个句子的最左推导过程。 步骤如下: (1) 初始时,将文法开始符号压入空栈. (2) 如果栈为空,则分析完成. (3) 如果栈顶为一非终结符,先将其从栈中弹出. 选择下 一个相应于该非终结符的产生式,并将其右部 符号从 右至左地一一入栈. 如果没有可选的产生式,则转出 错处理. (4) 如果栈顶为一终结符,那么这个符号必须与当前输入 符号相同,将其弹出栈,读下一符号,转第(2)步;否 则,回溯到第(3)步. 例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/+ 定理的证明 证明思路 欲证,对任何 w?T*, w?L(G) ?w?L(M). ? 先证明如下结论, if A ?w, then (q,w,A)├*(q, ?, ?). ? 归纳于 A ?w 的步数 n. ? 基础 n=1,A?w 必为产生式, (q,w,A)├ (q,w,w) ├*(q, ?, ?). 归纳 设第一步使用产生式 A?X1X2…Xm ,必有 w=w1w2…wm , (q,w,A)├ (q,w, X1X2…Xm ) ├* (q, w2…wm , X2…Xm) ├* (q, w3…wm , X3…Xm)├* …├* (q, ?, ?). 所以: if S ?w, then (q,w,S)├*(q, ?, ?). ? 即, w?L(G) ? w?L(M). 定理的证明 ? 先证明如下结论, if (q, w,A)├*(q, ?, ?), then A ? w.
文档评论(0)