- 3
- 0
- 约1.01万字
- 约 78页
- 2019-05-06 发布于广东
- 举报
第10章 自下而上的语法分析 第一节 自下而上语法分析概述 一. 规约过程 自下而上的语法分析:从输入串(叶结点)出发,归约,直至开始符(根结点)。 实现方法:采用符号栈,在移进的过程中,观察栈顶是否形成某个产生式的一个候选,如果形成,则采用该产生式进行规约。 例:文法G (S) S?SAS S?b A?ccA A?a 理解输入串“ b c c a b ”的归约过程 (三种方式) 关键问题及解决方案 关键问题:如何判断栈顶是否已形成可归约的符号串?如何进行归约? 不同的解决方案,不同的自下而上分析方法。 LR分析法:句柄,规范规约 算符优先分析法:最左素短语,结构规约 二. 句柄和规范归约 1.短语:设αβ?是上下文无关文法G的一个句型, 如果有S ? αA ? ?αβ ?,则称β是句型αβ?(关于非终结符A)的一个短语。 2.直接短语: S ? αA ? ?αβ ? 3.句柄:一个句型的最左直接短语 4.利用语法树确定 句型:语法树的边缘 短语:任意子树的边缘是相对于该子树的根的短语 直接短语:有且仅有两层的子树的边缘是相对于该子树的根的直接短语 句柄:位于最左边的有且仅有两层的子树的边缘 例: G(E) E→E+T|T T→T*F|F F→(E)|i 求T*F+i的短语、直接短语、句柄 5. 规范归约 假定?是文法G的一个句子,序列?0,?1,…,?n 满足下述条件时称为规范归约。 (1) ?0= ? ; (2) ?n为文法的开始符,即?n = S ; (3) ?i+1是把?i的句柄替换为相应产生式的左部而得到的符号串。 例:G(E) E→E+T│T T→T*F│F F→(E) │i 输入串 i+i*i 的规约过程: 三. 最左素短语和结构归约 1.素短语 某句型中含有终结符的最小短语叫做素短语。即,符号串α是素短语的条件是: 1) α是一个短语;2) α至少含有一个终结符;3) α中不再包含更小的、满足1、2条件的符号串。 2.最左素短语 某句型的素短语可能有多个,其中位于最左边的一个叫做最左素短语。 3. 结构归约 处于栈顶待归约的符号串与对应产生式在结构上一致(即:待归约串和产生式右端长度一致,对应的终结符一致,而非终结符可以不一致),即可利用该产生式进行规约。 例:文法G(E) E → E+T | T T → T*F | F F → (E) | i 符号串 i+i*i 的规约过程: 习题 1. 已知文法G: S → AB A → Ab | bB B → a | Sb (1) 写出 bBABb 的规范推导。 (2) 画出 bBABb 的语法树。 (3) 求 bBABb 的短语、直接短语、句柄和最左素短语。 2. 已知文法G: S → SbF | F F → FaP | P P → c (1) 试证明 FaPbc 是文法G的一个句型。 (2) 画出 FaPbc 的语法树。 (3) 求 FaPbc 的短语、直接短语、句柄和最左素短语。 第二节 LR分析法 一. LR分析法概述 LR分析法是指从左向右扫描输入串,每次根据分析栈中的状态、当前的输入符号以及超前搜索的K个输入符号,以确定句柄是否已在分析栈的栈顶形成,从而决定应采取的动作。一般只考虑K≤1的情况。 双栈结构(状态栈、符号栈) 初始时(初始状态0 、初始符号#) 状态栈里的每一状态概括了从分析开始到某一时刻已进行的分析工作 由action[s,a]和goto[s,x]两个子表组成。 (1) action表是一个状态(行)和终结符(列)的二维矩阵,action[s, a]定义了在状态 s 下,当前输入符号为 a 时应采取的动作。 (2) goto表是一个状态(行)和非终结符(列)的二维矩阵, goto[s, A]定义了在状态 s 下, 面对非终结符 A 时应采取的动作。 例:文法 G(E) (1) E→E+T (2) E→T (3) T→T*F (4) T→F (5) F→(E) (6) F→i 的LR分析表为: 根据状态栈的当前状态 s 和输入串的当前符号 a 查action表,以确定下一步操作: (1) 若action[s,a] = sj (移近) 将符号 a 和状态 j 推入栈中,输入指针右移。 (2) 若action[s,a] = rj (规约) 按第 j 个产生式A?? 归约。即从栈中弹出 t 个符号和状态(设?的长度为 t ) ,然后将非终结符 A 推
您可能关注的文档
- 滁州学院计算机与信息工程学院计算机网络课件第19讲 应用层(2).ppt
- 滁州学院计算机与信息工程学院计算机网络课件第20讲 网络安全与管理.ppt
- 滁州学院数据结构课件第八章 排序(C语言版).ppt
- 滁州学院数据结构课件第八章 图(C++语言版).ppt
- 滁州学院数据结构课件第二章 数组(C++语言版).ppt
- 滁州学院数据结构课件第二章 线性表(C语言版).ppt
- 滁州学院数据结构课件第九章 排序(C++语言版).ppt
- 滁州学院数据结构课件第六章 树与森林(C++语言版).ppt
- 滁州学院数据结构课件第六章 图(C语言版).ppt
- 滁州学院数据结构课件第七章 查找(C语言版).ppt
- 电子科技大学计算机科学与工程学院编译原理课件第11章 语义分析和中间代码生成.ppt
- 电子科技大学计算机科学与工程学院计算机组成原理课件 CPU-1运算部件.ppt
- 电子科技大学计算机科学与工程学院计算机组成原理课件 CPU-5设计模型机.ppt
- 电子科技大学计算机科学与工程学院面向对象程序设计课件 第六章.ppt
- 电子科技大学计算机科学与工程学院面向对象程序设计课件 第三章.ppt
- 电子科技大学计算机科学与工程学院面向对象程序设计课件 第四章.ppt
- 电子科技大学计算机科学与工程学院面向对象程序设计课件 第五章.ppt
- 电子科技大学计算机科学与工程学院面向对象程序设计课件 第一章.ppt
- 电子科技大学计算机系统与网络安全技术课件第1章 概论.ppt
- 电子科技大学计算机系统与网络安全技术课件第2章 信息安全数学基础(复杂性).ppt
最近下载
- 公文写作考试试题及答案-公安考试试题及答案.docx VIP
- 控制系统仿真与计算机辅助设计第三版薛定宇习题答案.pdf VIP
- TCESA1249.22023服务器及存储设备用液冷装置技术规范第2部分连接系统.docx VIP
- 鼎捷PLM-System培训讲义-系统功能(简体版)SolidWorks.ppt VIP
- 高频精选:部委党群面试题及答案.doc VIP
- 鼎捷PLM System培训讲义-系统功能(简体版)AutoCAD.pptx VIP
- 最新教科版小学科学三年级上册《3.8测试“过山车”》优质教学课件.pptx VIP
- 2025年国考面试部委党群及参公单位面试真题归总及答案.docx VIP
- 邹仲之《组织学与胚胎学》1组织学绪论.ppt VIP
- BOT项目成本测算咨询报告(上传).docx VIP
原创力文档

文档评论(0)