如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第四章语法分析§4.1引言一、语法分析任务二、语法分析方法§4.2自顶向下语法分析一、自顶向下分析方法的问题及其解决办法二、递归子程序分析法(递归下降分析法)三、LL(1)分析法§4.3自底向上语法分析一、简单优先文法分析法二、算符优先分析法三、优先函数及其构造四、LR分析法五、二义性文法的应用§4.4语法分析程序的自动生成一、分析器的生成器YACC二、用YACC处理二义性文法2本章内容本章内容第四章语法分析§4.1引言一、语法分析任务二、语法分析方法§4.2自顶向下语法分析一、自顶向下分析方法的问题及其解决办法二、递归子程序分析法(递归下降分析法)三、LL(1)分析法§4.3自底向上语法分析一、简单优先文法分析法二、算符优先分析法三、优先函数及其构造四、LR分析法五、二义性文法的应用§4.4语法分析程序的自动生成一、分析器的生成器YACC二、用YACC处理二义性文法3本章内容本章内容§4.1引言本节内容本节内容一、语法分析任务一、语法分析任务1.1.语法检查语法检查2.2.根据语法符号进行一定处理加工根据语法符号进行一定处理加工二、语法分析方法二、语法分析方法1.1.自顶向下语法分析方法自顶向下语法分析方法2.2.自底向上语法分析方法自底向上语法分析方法词法分析阶段,主要介绍了单词符号的结构、识别(用状态转换图),描述(通过正规式)以及有限自动机DFA和NFA。在一个编译程序对某个源程序完成了词法工作以后,就进入了语法分析阶段。由词法分析程序所产生的单词符号流,作为语法分析程序的输入串,按文法规则分析检查是否构成了合法的句子。首先来了解一下语法分析的任务。5§4.1引言一、语法分析任务一、语法分析任务1.语法检查2.根据语法符号进行一定处理加工二、语法分析方法1.自顶向下语法分析方法2.自底向上语法分析方法6§4.1引言一、语法分析任务71.语法检查根据语法规则对各种语法成分进行分析,确定它们的根据语法规则对各种语法成分进行分析,确定它们的语法关系以检查语法上的正确和错误,并指出错误的性质语法关系以检查语法上的正确和错误,并指出错误的性质和出错位置。和出错位置。如:如:ifBthenS1elseS2ifBthenS1elseS2若写成若写成ifBthenelseS2ifBthenelseS2就错了(就错了(thenthen后少一个后少一个S1S1))§4.1引言一、语法分析任务一、语法分析任务1.语法检查2.根据语法符号进行一定处理加工二、语法分析方法1.自顶向下语法分析方法2.自底向上语法分析方法8§4.1引言一、语法分析任务92.2.根据语法符号进行一定语义处理加工根据语法符号进行一定语义处理加工如语法分析过程得到一个合法的句子时,往往同时进如语法分析过程得到一个合法的句子时,往往同时进行必要的语义分析等行必要的语义分析等如:当遇到处理表达式如:当遇到处理表达式a+ba+b*c*c时,若该表达式语法关时,若该表达式语法关系正确,就可以进行语义砑庸ぃ山帽泶锸?系正确,就可以进行语义处理加工,可将该表达式变成中间语言,以便以后生成目标程序变成中间语言,以便以后生成目标程序§4.1引言一、语法分析任务一、语法分析任务1.语法检查2.根据语法符号进行一定处理加工二、语法分析方法1.自顶向下语法分析方法2.自底向上语法分析方法10§4.1引言二、语法分析方法语法分析方法很多,但能够产生计算机程序并能得到广泛应用的主要有两大类,按照生成语法树的顺序,分别称为自顶向下和自底向上分析方法。11§4.1引言二、锓?/b>分析方法一、语法分析任务1.语法检查2.根据语法符号进行一定处理加工二、语法分析方法1.自顶向下语法分析方法2.自底向上语法分析方法12§4.1引言二、语法分析方法131.1.自顶向下语法分析方法自顶向下语法分析方法((11)带回溯分析方法)带回溯分析方法((22)不带回溯分析方法)不带回溯分析方法((33)递归子程序法)递归子程序法((44))LL