自顶向下语法分析.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《自顶向下语法分析.pptx》由会员分享,可在线阅读,更多相关《自顶向下语法分析.pptx(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五章第五章 自顶向下语法分析方法自顶向下语法分析方法5.1 5.1 自顶向下分析法的相关问题自顶向下分析法的相关问题自顶向下分析法的相关问题自顶向下分析法的相关问题5.2 LL(1)5.2 LL(1)文法的定义和判别文法的定义和判别文法的定义和判别文法的定义和判别5.3 5.3 文法等价变换文法等价变换文法等价变换文法等价变换5.4 5.4 确定的自顶向下分析法确定的自顶向下分析法确定的自顶向下分析法确定的自顶向下分析法 (递归下降程序法递归下降程序法递归下降程序法递归下降程序法和和和和预测分析法预测分析法预测分析法预测分析法)第1页/共38页5.1 5.1 5.1 5.1 相关问题相关问题
2、相关问题相关问题1 1 1 1、什么是语法分析?、什么是语法分析?、什么是语法分析?、什么是语法分析?2 2 2 2、什么是自顶向下分析法?、什么是自顶向下分析法?、什么是自顶向下分析法?、什么是自顶向下分析法?3 3 3 3、在自顶向下的分析过程中,存在的问题、在自顶向下的分析过程中,存在的问题、在自顶向下的分析过程中,存在的问题、在自顶向下的分析过程中,存在的问题 是什么?是什么?是什么?是什么?4 4 4 4、什么是确定的自顶向下分析法?、什么是确定的自顶向下分析法?、什么是确定的自顶向下分析法?、什么是确定的自顶向下分析法?第2页/共38页文法文法G1S:S G1S:S pA 1 S
3、pA 1 S qB 2 qB 2 A A cAd 3 A cAd 3 A a 4 a 4输入串输入串W=W=pccaddpccadd。自顶向下的推导过程为。自顶向下的推导过程为:S S pA pA pcAd pcAd pccAdd pccAdd pccadd pccadd相应的语法树为:相应的语法树为:pAcAdcAdaS5.1 5.1 相关问题相关问题第3页/共38页文法文法G1S:S G1S:S pA 1 S pA 1 S qB 2 qB 2 A A cAd 3 A cAd 3 A a 4 a 4自顶向下的语法分析过程自顶向下的语法分析过程【Sf,Rest,Action(D/M/S/E)S
4、f,Rest,Action(D/M/S/E)】S#pccadd#S#pccadd#DerivationDerivation pA#pccadd#Match pA#pccadd#Match A#ccadd#A#ccadd#DerivationDerivation cAd#ccadd#Match cAd#ccadd#Match Ad#cadd#Ad#cadd#DerivationDerivation cAdd#cadd#Match cAdd#cadd#Match Add#add#Add#add#DerivationDerivation add#add#Match add#add#Match dd#
5、dd#Match dd#dd#Match d#d#Match d#d#Match#Success#Success5.1 5.1 相关问题相关问题第4页/共38页问:问:问:问:当一个非终结符号对应若干个规则时,选择哪个规则的右部对该非终结符号进行展开呢?例如:如果要被代换的最左非终结符号是U,且有n条规则:U:=:=A1|A2|An,那么如何确定用哪个规则的右部去替代U?5.1 5.1 相关问题相关问题确定的自顶向下分析法:确定的自顶向下分析法:对每一个非终结符,都能够确定地选择规则来展开它。对每一个非终结符,都能够确定地选择规则来展开它。LL(1)LL(1)文法文法第5页/共38页文法文法G
6、2S:S G2S:S Ap 1 S Ap 1 S Bq 2 Bq 2 A A a 3 A a 3 A cA 4 cA 4 B B b 5 B b 5 B dB 6 dB 6 输入串输入串W=W=ccapccap。自顶向下的推导过程为。自顶向下的推导过程为:S S Ap Ap cAp cAp ccAp ccAp ccap ccap 相应的语法树为:相应的语法树为:SApcAcAa5.1 5.1 相关问题相关问题第6页/共38页First集的定义集的定义设设设设G=(VG=(VT T,V VN N,S S,P)P)是上下文无关文法是上下文无关文法是上下文无关文法是上下文无关文法,其中:其中:其中:
7、其中:(V VT T V VN N)*)*,则:,则:,则:,则:First(First()=a)=a V VT T|a.a.(if (if then then )可以根据当前的输入符号是属于哪个产生式右部的首符集而决定选择相应产生式进行推导。可以根据当前的输入符号是属于哪个产生式右部的首符集而决定选择相应产生式进行推导。可以根据当前的输入符号是属于哪个产生式右部的首符集而决定选择相应产生式进行推导。可以根据当前的输入符号是属于哪个产生式右部的首符集而决定选择相应产生式进行推导。*5.2 LL(1)文法的定义和判别第7页/共38页文法文法G3S:S G3S:S aA 1 S aA 1 S d
8、2 d 2 A A bAS 3 A bAS 3 A 4 4 输入串输入串W=W=abdabd。自顶向下的推导过程为。自顶向下的推导过程为:S S aA aA abAS abAS abS abS abd abd相应的语法树为:相应的语法树为:SaAbASd第8页/共38页Follow集的定义集的定义设设设设G=(VG=(VT T,V VN N,S S,P)P)是上下文无关文法,是上下文无关文法,是上下文无关文法,是上下文无关文法,A A V VN N,S S是开始符号是开始符号是开始符号是开始符号 Follow(A)Follow(A)=a=a V VT T|S|S.Aa.Aa.(if S(if
9、S.A then#).A then#)当文法中存在当文法中存在当文法中存在当文法中存在推导推导推导推导形如:形如:形如:形如:A A 时,如果时,如果时,如果时,如果当前的字符属于当前的字符属于当前的字符属于当前的字符属于Follow(A)Follow(A),则用空字符,则用空字符,则用空字符,则用空字符串取代串取代串取代串取代A A的出现。的出现。的出现。的出现。*+5.2 LL(1)5.2 LL(1)文法的定义和判别文法的定义和判别第9页/共38页SelectSelect集的定义集的定义集的定义集的定义 Select(ASelect(A )=First(=First(),当当当当 Firs
10、t(First()=First(=First()Follow(A),Follow(A),当当当当 First(First()定义:定义:定义:定义:文法文法文法文法GG是是是是LL(1)LL(1)文法的充要条件是文法的充要条件是文法的充要条件是文法的充要条件是,对对对对于于于于U U的任意两个不同的规则有的任意两个不同的规则有的任意两个不同的规则有的任意两个不同的规则有:Select(USelect(U)Select(U)Select(U )=)=5.2 LL(1)5.2 LL(1)文法的定义和判别文法的定义和判别第10页/共38页LL(1)LL(1)文法的判别文法的判别文法的判别文法的判别判
11、别算法:判别算法:判别算法:判别算法:1 1、计算能推出、计算能推出、计算能推出、计算能推出 的非终结符的非终结符2 2、构造、构造、构造、构造FirstFirst集集集集3 3、构造、构造、构造、构造FollowFollow集集集集4 4、构造、构造、构造、构造SelectSelect集并作判别集并作判别集并作判别集并作判别5.2 LL(1)5.2 LL(1)文法的定义和判别文法的定义和判别第11页/共38页文法GE:E E T E T E E E +T E+T E|T T F T F T T T *F T*F T|F F i|(E)i|(E)EETTFNYYNN第12页/共38页计算计算F
12、irst(X)First(X)集集对每一文法符号对每一文法符号X X计算计算First(X)First(X)若若X X V VT T,First(X)=XFirst(X)=X若若X X V VN N则则 First(X)=a|XFirst(X)=a|Xa a P,a P,a V VT T 若若X X V VN N,且有产生式且有产生式X X,则则 First(X)First(X)若若X X V VN N,有产生式有产生式X XY Y1 1Y Y2 2Y Yn n,且,且Y Y1 1,Y,Y2 2,Y,Yi i V VN N 当当Y Y1 1,Y,Y2 2,Y,Yi-1i-1,则,则 First
13、(YFirst(Y1 1)-)-,First(Y,First(Y2 2)-)-,First(Y First(Yi-1i-1)-)-,First(Y,First(Yi i)都包含在都包含在First(X)First(X)中。中。当当Y Yi i(i=1,2,(i=1,2,n),n),将将 并入并入First(X)First(X)中。中。*第13页/共38页文法GE:E E T E T E E E +T E+T E|T T F T F T T T *F T*F T|F F i|(E)i|(E)First(E)First(T)First(E)First(T)First(F)*+i(第14页/共38页
14、计算计算First(First()集集若符号串若符号串=X=X1 1X X2 2X Xn n,当当X X1 1,X,X2 2,X Xi-1i-1,X Xi i不能不能,则,则 First(First()=)=(First(X(First(Xj j)-)-)First(X First(Xi i)若所有若所有X Xi i都能都能,则,则 First(First()=)=First(X First(Xj j)i=1jj-1i=1*第15页/共38页计算计算Follow(X)Follow(X)集集1:1:对所有对所有X X V VN N,令,令Follow(X):=Follow(X):=;对开始符;对
15、开始符S,S,令令Follow(S)=#Follow(S)=#;2:2:若有产生式若有产生式AxByAxBy,如果如果First(y)First(y)则:则:Follow(B)=First(y)Follow(B)=First(y)否则否则 Follow(B)=(First(y)Follow(B)=(First(y)Follow(A)Follow(A)3:3:重复重复2 2和和3 3,直至对所有,直至对所有X X V VN N,Follow(X)Follow(X)收收 敛为止。敛为止。第16页/共38页文法GE:E E T E T E E E +T E+T E|T T F T F T T T *
16、F T*F T|F F i|(E)i|(E)Follow(E)Follow(T)Follow(E)Follow(T)Follow(F)#First(E)+First(T)*第17页/共38页计算计算SelectSelect集集Select(ASelect(A)=First(=First(),当,当First(First()不含不含 =First(=First()-)-Follow(A)Follow(A),当当First(First()含含结论:结论:如果相同左部产生式的如果相同左部产生式的SelectSelect交集都交集都是空集,则该文法是是空集,则该文法是LL(1)LL(1)文法。文法。第
17、18页/共38页文法GE:E E T E T E E E +T E+T E|T T F T F T T T *F T*F T|F F i|(E)i|(E)Select(ESelect(ETETE)=)=first(TEfirst(TE)=i,(i,(SelectSelect(E(E +TE+TE)=)=first(+TEfirst(+TE)=+SelectSelect(E(E )=)=follow(Efollow(E)=),#),#SelectSelect(T(T FT FT)=)=first(FTfirst(FT)=i,(i,(SelectSelect(T(T *FT*FT)=)=first
18、(*FTfirst(*FT)=*SelectSelect(T(T )=)=follow(Tfollow(T)=+,),+,),#SelectSelect(F(F i)=i)=first(i)first(i)=i i SelectSelect(F(F(E)=(E)=first(E)first(E)=(第19页/共38页文法GE:E E T E T E E E +T E+T E|T T F T F T T T *F T*F T|F F i|(E)i|(E)SelectSelect(E(E +TE+TE)SelectSelect(E(E )=)=SelectSelect(T(T *FT*FT)Sel
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 向下 语法分析
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内