收藏 分享(赏)

第04章 语法分析——自上而下分析(4).ppt

上传人:ysd1539 文档编号:7033671 上传时间:2019-05-03 格式:PPT 页数:19 大小:455KB
下载 相关 举报
第04章 语法分析——自上而下分析(4).ppt_第1页
第1页 / 共19页
第04章 语法分析——自上而下分析(4).ppt_第2页
第2页 / 共19页
第04章 语法分析——自上而下分析(4).ppt_第3页
第3页 / 共19页
第04章 语法分析——自上而下分析(4).ppt_第4页
第4页 / 共19页
第04章 语法分析——自上而下分析(4).ppt_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、第三章 词法分析,4.5.1 预测分析程序 工作过程,任课教师:孙飞显 ,编译原理,中原工学院 计算机学院,预测分析程序提出的背景,递规下降分析程序:是实现LL(1)文法分析的途径之一。 递规下降分析器存在的问题:如果用高级语言的递规过程描述递规下降分析器,只有当具有实现这种过程的编译系统时才有实际意义。,中原工学院 计算机学院,内容提要,预测分析程序的功能 预测分析表的定义 预测分析程序的总控程序设计算法 预测分析过程举例,中原工学院 计算机学院,1、预测分析程序的功能,功能:实现LL(1)分析的另一种有效途径 方法:使用预测分析表和堆栈进行联合控制,中原工学院 计算机学院,2、预测分析表,

2、预测分析表是一个MA,a形式的矩阵。其中A为非终结符,a是终结符或# 。 矩阵元素MA,a中存放着一条关于A的产生式,指出当A面临输入符号a时所应采用的候选;MA,a中也可能存放一个“出错标志”,指出A根本不该面临输入符号a。,中原工学院 计算机学院,预测分析表举例,LL(1) 文法,中原工学院 计算机学院,3、预测分析程序的总控程序设计,栈STACK的功能栈STACK的初始化必要的假设,中原工学院 计算机学院,栈STACK的功能,当使用预测分析程序对LL(1)文法进行分析时,要用到两种数据结构: 预测分析表:存放产生式 栈STACK:存放文法符号,中原工学院 计算机学院,栈STACK的初始化

3、,当使用预测分析程序对LL(1)文法进行分析时,要对STACK进行初始化,方法如下: 步骤1:栈底放“#” ; 步骤2:放入文法开始符号。,中原工学院 计算机学院,必要的假设,假设输入串之后总有一个“#” “#”标志输入串的结束 该假设与STACK初始化时栈底的“#”相互对应,中原工学院 计算机学院,预测分析器模型,预测分析程序的总控程序在任何时候都是按STACK的栈顶符号X和当前的输入符号a行事的。预测分析器模型如下右图所示:,中原工学院 计算机学院,总控程序的设计思想,若X = a = #,则分析成功,停止分析过程。 若X = a #,则把X从STACK栈顶弹出,让a指向下一个输入符号。,

4、中原工学院 计算机学院,总控程序的设计思想(续),若X是一个非终结符,则查看分析表M。若MX,a中有X的产生式,则把X弹出STACK,然后把产生式的右部符号串按反序逐一压栈(若右部符号为,则不压栈);若MX,a中存放着“出错标志”,则调用出错诊断程序ERROR。,中原工学院 计算机学院,句型i*i+i的预测分析过程,步骤,符号栈,输入串,所用产生式,0,#E,i*i+i#,1,#ET,i*i+i#,ETE,2,#ETF,i*i+i#,TFT,中原工学院 计算机学院,句型i*i+i的预测分析过程(续1),步骤,符号栈,输入串,所用产生式,3,4,5,#ETi,i*i+i#,Fi,#ET,*i+i

5、#,#ETF*,*i+i#,T*FT,中原工学院 计算机学院,句型i*i+i的预测分析过程(续2),步骤,符号栈,输入串,所用产生式,6,7,8,#ETF,i+i#,#ETi,i+i#,Fi,#ET,+i#,中原工学院 计算机学院,句型i*i+i的预测分析过程(续3),步骤,符号栈,输入串,所用产生式,9,10,11,#E,+i#,T,#ET+,+i#,E+TE,#ET,i#,中原工学院 计算机学院,句型i*i+i的预测分析过程(续4),步骤,符号栈,输入串,所用产生式,12,13,14,#ETF,i#,TFT,#ETi,i#,Fi,#ET,#,中原工学院 计算机学院,句型i*i+i的预测分析过程(续5),步骤,符号栈,输入串,所用产生式,15,16,#E,#,T,#,#,E,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 外语学习 > 语法

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报