主要的内容:1.语法分析的过程(自上而下推导,自下而上规约)
2.文法的改造
3.递归下降分析器的设计(LL分析,自上而下的推导)
4.语法分析器的自动生成(LR分析,自下而上的规约)
语法分析器的功能
在词法分析识别出单词符号串的基础上,分析并判定程序的语法结构是否符合语法规则。
那么,如何判断?
1.从文法的起始符出发进行句子的推导,即自上而下的分析
2.从句子本身出发,进行归约,看能否把句子规约为到起始符,即自下而上的规约
基本思想:对任何一个输入串,试图用一切可能的办法,从文法的开始符号(根节点)出发,根据文法自上而下地为输入串建立一棵语法树,即为输入串寻找一个最左推导。
思想本质:是一种试探过程,是反复使用不同产生式谋求匹配输入串的过程。
自上而下分析面临的问题:
1.文法的左递归问题
2.回溯的不确定性,要求我们将已经完成工作推倒从来
3.虚假匹配的问题
4.不能准确地确定输入串中出错的位置
5.效率低
存在的困难和问题:
1.文法左递归
当试图用P去匹配输入串时,在没有识别任何输入符号的情况下,又得重新要求P