第四章语法分析自上而下分析精选文档.ppt
《第四章语法分析自上而下分析精选文档.ppt》由会员分享,可在线阅读,更多相关《第四章语法分析自上而下分析精选文档.ppt(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章语法分析自上而下分析本讲稿第一页,共二十八页引言引言在词法分析完成之后,进入语法分析阶段。在词法分析完成之后,进入语法分析阶段。语法分析是编译过程的语法分析是编译过程的核心核心。其任务是:。其任务是:在词法分析识别出的在词法分析识别出的单词符号串单词符号串的基础上,的基础上,分析并判定程序的分析并判定程序的语法结构语法结构是否符合是否符合语法语法规则规则。语法分析的基础语法分析的基础上下文无关文法上下文无关文法语法分析的语法分析的输入:单词符号串输入:单词符号串输出:程序的内部中间表示形式。输出:程序的内部中间表示形式。本讲稿第二页,共二十八页语法分析器语法分析器完成语法分析的程序,其工
2、作完成语法分析的程序,其工作的实质是的实质是按文法产生式,识别输入符号串是按文法产生式,识别输入符号串是否为一个句子。否为一个句子。具体来说,就是看能否从文法的开始符号出发,具体来说,就是看能否从文法的开始符号出发,推导出输入串(单词符号组成的有限序列),推导出输入串(单词符号组成的有限序列),即能否建立一个与输入串相匹配的语法分析树。即能否建立一个与输入串相匹配的语法分析树。以建立与输入串相匹配的语法分析树的不同,以建立与输入串相匹配的语法分析树的不同,语法分析树分为:语法分析树分为:自上而下的语法树自上而下的语法树自下而上的语法树自下而上的语法树4.1 语法分析器的功能语法分析器的功能本讲
3、稿第三页,共二十八页4.2 自上而下分析面临的问题自上而下分析面临的问题自上而下分析的实质:自上而下分析的实质:从推导的角度看,从文从推导的角度看,从文法的开始符号出发,自上而下,推出句子。(一般法的开始符号出发,自上而下,推出句子。(一般是最左推导)是最左推导)自上而下分析的主旨:自上而下分析的主旨:对任何输入串,试图对任何输入串,试图尝试一切可能的办法,文法的开始符号(根节点)尝试一切可能的办法,文法的开始符号(根节点)出发,试图自上而下建立一个语法树,其末端节出发,试图自上而下建立一个语法树,其末端节点正好与输入符号串相同。点正好与输入符号串相同。本讲稿第四页,共二十八页例例4.1(1)
4、S x A y(2)A *|*SSxAy=x*y=x*y=x*ySxAySxAy*=x*y回溯*=x*y=x*y=x*y本讲稿第五页,共二十八页上述过程面临的一些问题上述过程面临的一些问题左递归问题回溯成功的暂时性不成功时找不到出错的位置效率底、代价高(穷尽一切方法)解决方法:解决方法:消除文法的左递归找出克服回溯的充分必要条件本讲稿第六页,共二十八页1.1 消除直接左递归消除直接左递归P PP P|P P P PP P P P|例4.2 P69P PP P 1 1|P|P 2 2|P|P m m|1 1|2 2|n nP P 1 1P P|2 2P P|n nP PP P 1 1P P|2
5、2P P|m m P P|本讲稿第七页,共二十八页1.2 消除间接左递归消除间接左递归间接左递归的含义间接左递归的含义P70 消除间接左递归的算法消除间接左递归的算法用代入的方用代入的方法变间接左递归为直接左递归,然后用公法变间接左递归为直接左递归,然后用公式消除左递归式消除左递归本讲稿第八页,共二十八页例子例子4.3文法文法G4.2E:=E+T|TT:=T*F|FF:=(E)|i消左递归得到消左递归得到E:=TEE:=+TE|T:=FTT:=*FT|F:=(E)|i本讲稿第九页,共二十八页2.1 消除回溯消除回溯为什么要消除回溯?为什么要消除回溯?无回溯就意味着不用做无谓的尝试。无回溯就意味
6、着不用做无谓的尝试。如何消除回溯?如何消除回溯?对于任一非终结符号对于任一非终结符号A的产生式的右部的后选式:的产生式的右部的后选式:1|2|n,如果其对应的第一个终结符号,如果其对应的第一个终结符号两两各不相同,那么两两各不相同,那么A在匹配过程中就不用试探在匹配过程中就不用试探了,而是根据所面临的输入符号了,而是根据所面临的输入符号a唯一确定用哪唯一确定用哪个后选式匹配,即该后选式的成败全权代表了个后选式匹配,即该后选式的成败全权代表了A。本讲稿第十页,共二十八页 G是一个不带左递归的文法,对于是一个不带左递归的文法,对于G的所有非终结符的所有非终结符的每个的每个后选后选 定义其终结首符集
7、:定义其终结首符集:FIRST()=a|a,a VT FIRST(u)包含了包含了u对应的字的所有可能的首终结符号。对应的字的所有可能的首终结符号。FirstFirst(X X)的求法如下)的求法如下(书书P78)P78):1 1)若)若X X是终结符或是终结符或,则,则FirstFirst(X X)=X=X。2 2)若)若X X是非终结符,则对于每个产生式是非终结符,则对于每个产生式 XXXX1 1 X X2 2X Xn n,a a)FirstFirst(X X)包含)包含First(XFirst(X1 1)-)-。b b)若对于某个)若对于某个inin,所有,所有First(XFirst(
8、X1 1).First(X).First(Xi i)都包括了都包括了,则,则First(X)First(X)包括包括First(XFirst(Xi+1i+1)-)-。c c)若所有集合)若所有集合First(XFirst(X1 1).First(X).First(Xn n)包括包括,则,则FirstFirst(X X)包括)包括。若若,则规定,则规定 First First()如果非终结符如果非终结符A A的所有后选首符集两两不相交,则当要求的所有后选首符集两两不相交,则当要求A A匹配输入匹配输入串时,串时,A A就能根据它所面临的第一个输入符号就能根据它所面临的第一个输入符号a a准确指派
9、某个后选准确指派某个后选去匹配。去匹配。*本讲稿第十一页,共二十八页FIRST()求法示例)求法示例文法G4.2E:=TEE:=+TE|T:=FTT:=*FT|F:=(E)|iFIRST(E)=FirstFirst(T T)=First=First(F F)=First=First()并)并FirstFirst(i i)=(,(,i i FIRST(E)=FirstFirst(+TE+TE)并并 FirstFirst()=+,FIRST(T)=FirstFirst(*FT)并并 FirstFirst()=*,本讲稿第十二页,共二十八页提取公因子提取公因子将文法改造成任何非终结符的所将文法改造成
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 语法分析 自上而下 分析 精选 文档
限制150内