04自上而下语法分析.ppt

第四章 语法分析--自上而下分析 自上而下 语法分析 高级语言的语法结构适合用上下无关文法描述,因此,我们将上下文无关文法作为语法分析的基础 本章和下一章,我们将介绍编译程序构造中的一些典型的语法分析方法 1 语法分析器功能 语法分析是编译过程的核心部分。它的任务是在词法分析识别出单词符号串的基础上,分析并判定程序的语法结构是否符合语法规则 下图表明了语法分析器在编译程序中的地位 按照语法分析树的建立方法,我们可以粗略地把语法分析方法分为两类:一类是自上而下分析法,另一类为自下而上分析法 2 自上而下分析面临的问题 自上而下分析的一般方法:对任何输入串,用一切可能的方法从文法开始符号(根结)出发,自上而下地为输入串建立一棵语法树,或寻找一个最左推导 这种分析过程本质上是一种试探过程,是反复使用不同产生式谋求匹配输入串的过程 例4.1:假定有文法(4.1) S→xAy A→**|* 分析输入串x*y(记为α)。 由上例看到,自上而下分析法存在许多困难和缺点 文法的左递归性P?Pα使分析陷入无限循环 回溯的不确定性,要求我们将已经完成工作推倒重来 虚假匹配问题 难于知道出错位置 效率低,代价高,实践价值不大 因此,为解决这些问题我们要消除左递归和回溯 3 LL(1) 分析法 3.1 左递归的消除 3.2 消除回溯、提左因子 3.3 LL(1)分析条件 3.1 左递归的消除

文档评论(0)

1亿VIP精品文档

相关文档