形式语言自动机——上下文无关文法与下推自动机(一)2.ppt
文本预览下载声明
College of Computer Science Technology, BUPT * College of Computer Science Technology, BUPT 第四章 上下文无关文法与下推自动机 推导树和文法的 二义性 上下文无关文法的变换 Chomsky范式 Greibach范式 下推自动机 上下文无关语言的性质 * College of Computer Science Technology, BUPT 本章要点 上下文无关文法(即2型文法): 产生式形如 A→α, A??, ????∪Τ)* 所描述的语言称为上下文无关语言。 用途: 可定义程序设计语言、进行语法分析、简化语言翻译? 2型文法对应的识别器——下推自动机 PDA(Push Down Automata)由输入带、有限控制器和下推栈构成(书P152 图) * College of Computer Science Technology, BUPT 回顾:在第一讲中介绍过如下内容 设 T= ? 0, 1 ?, L = ? 0n1n ? n ? 1?, 如 0011, 000111, 01 ? L, 而10, 1001 , ?, 010 ? L . 如下是一个可接受该语言的上下文无关文法? S ? 01 S ? 0S1 但没有任何有限自动机能够接受语言L. * College of Computer Science Technology, BUPT 归约与推导的概念: 推理字符串是否属于文法所定义的语言 一种是自下而上的方法,称为递归推理(recursive inference),递归推理的过程习称为归约; 一种是自上而下的方法,称为推导(derivation). 归约过程 将产生式的右部(body)替换为产生式的左部( head ). 推导过程 将产生式的左部( head )替换为产生式的右部( body ). 4.1 推导树和二义性 * College of Computer Science Technology, BUPT 归约与推导 归约过程举例 对于CFG Gexp = ({E,O}, { (, ),+, ?, v, d }, P , E ) ,P 为 (1)E ? EOE (2) E ? (E) (3) E ? v (4) E ? d (5) O ?+ (6) O ? ? 递归推理出字符串 v ?(v+d) 的一个归约过程为 v ?(v+d) (4) v ?(v+E) (6) vO(v+E) (3) vO(E+E) (5) vO(EOE) (1) vO(E) (2) vOE (3) EOE (1) E * College of Computer Science Technology, BUPT 归约与推导 推导过程举例 对于CFG Gexp = ({E,O}, { (, ),+, ?, v, d }, P , E ) ,P 为 (1)E ? EOE (2) E ? (E) (3) E ? v (4) E ? d (5) O ?+ (6) O ? ? 从开始符号到字符串 v ?(v+d) 的一个推导过程为 v ?(v+d) (4) v ?(v+E) (6) E ?(E) (3) (1) v ?(EOE) (5) (3) EOE (1) E E ?E (2) v ?(E) v ?(E+E) * College of Computer Science Technology, BUPT 归约与推导 E ? EOE E ? (E) E ? v E ? d O ?+ O ? ? 最左推导(leftmost derivations) 若推导过程的每一步总是替换出现在最左边的非终结符, 则这样的推导称为最左推导. 为方便,最左推导关系用? 表示,其传递闭包用?表示. 如
显示全部