编译原理 6章.ppt_第1页
编译原理 6章.ppt_第2页
编译原理 6章.ppt_第3页
编译原理 6章.ppt_第4页
编译原理 6章.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第6章自下而上分析和优先分析方法,编译原理陈炬桦isscjh,62短语与句柄,定义6.1文法GS:SxUy,U称是句型xy相对于U的短语。SxUy,U=称是句型xy相对于U的直接短语或简单短语。最左直接短语称句柄。,63移进-归约方法,例6.4G32ZZABAaAb|abBbB|c,64有关文法的一些关系,关系:一个n元关系R定义为一个有序的n元组集合。x1,x2,x3,xn满足关系R,当且仅当有序n元组x1,x2,x3,xn)R关系具有以下基本性质:自反性:任意x,有xRx对称性:任意x,y,任意xRy,有yRx传递性:任意x,y,z,有xRy,yRz则有xRz,与文法有关的一些关系:,关系

2、和x,y,R1和R2是上的两个关系,R1与R2的两个关系和记为R1+R2。x(R1+R2)y当且仅当xR1y或xR2y关系积R1和R2是上的两个关系,R1与R2的两个关系积记为R1R2。xR1R2y当且仅当存在w,使得xR1w与wR2y传递闭包关系R的传递闭包记为R+,x,y,xR+y当且仅当存在n0,使得xRny自反传递闭包关系R的传递闭包记为R*,x,y,xR*y当且仅当存在n0,使得xRny,其中R0为恒等,布尔矩阵和关系,关系可用集合定义,也可用布尔矩阵表示xRy当且仅当Mx,y=1定理6.1M(RT)=M(R)T定理6.2M(R1+R2)=M(R1)+M(R2)定理6.3M(R1R2

3、)=M(R1)M(R2)定理6.4M(R+)=M(R)+,传递闭包的Warshall算法,forj:=1tondofori:=1tondoifMi,j=1thenfork:=1tondoifMj,k=1thenMi,k=1;,关系FIRST和LAST,AFIRSTBABALASTBAB结论:AFIRST+BABALAST+BAB,例6.8设文法G33S:S(A)|a|bABBS|ScbFIRSTFIRST+,例6.8设文法G33S:S(A)|a|bABBS|ScbLASTLAST+,65简单优先分析方法,简单优先关系LRULRLRULP,PRLRUWP,WL;PR简单优先关系的形式化构造公式6

4、.1()()(FIRST+)公式6.2()(LAST+)T()(FIRST*),简单优先文法及其分析方法,定义6.2简单优先文法满足任意两个符号(VNVT)至多存在一种简单优先关系。产生式没有相同的右部。,例6.9G34SS(R)|a|RTTS,T|S由S(R)有(RR)由TS,T有S,T:由S(R)(R=(T=(S=(=(a=(由TS,T,T=,S=,(=,a=,:R)=T)=S)=)=a)=),例6.9G34SS(R)|a|RTTS,T|S对符号串(a),a)检查,简单优先关系的形式化构造,公式6.1()()(FIRST+)LP=LP,PFIRST+R公式6.2()(LAST+)T()(F

5、IRST*)WP=WP,(WLAST+L),PFIRST*R=L(LAST+)TW,WP,PFIRST*R,简单优先关系的局限性,G35EEE+T|TTT*F|FF(E)|iEE+T+TE+T=E+T*F+T,66算符优先分析方法,算符优先文法abUab或UaVbabUaP,Pb或PVbabUWb,Wa或WaV定义6.3产生式的右部不存在相连的VN符号称算符文法(OG)。定义6.4任意两VT符号间最多存在一种优先关系称算符优先文法(OPG),OPG优先关系的构造(1)由定义构造算符优先关系,FIRSTVT(U)=b|Ub或UVb,bVT,VVNLASTVT(U)=a|Ua或UaV,aVT,VV

6、Nab由产生式得到Uab或UaVbab由产生式UaP,bFIRSTVT(P)ab由产生式UWb,aLASTVT(W),OPG优先关系的构造(2)由直观方法构造算符优先关系,先乘除、后加减、指数优先先左后右(加减)、先右后左(指数)括号内优先,运算符小于小于其它VT符号。,OPG优先关系的构造(3)由已知关系构造算符优先关系,UFIRSTTERMbUb或UVbULASTTERMaUa或UaV结论:()()(FIRST*)(FIRSTTERM)()(LAST*)(LASTTERM)T(),素短语及句型分析,定义6.5素短语:包含VT符号但不包含其它素短语的短语。定理6.5句型viaivjajvj+

7、1最左素短语满足ai-1aiai+1ajaj+1,G35EEE+T|TTT*F|FF(E)|i分析符号串i*(i+i),67优先函数及其构造,6.7.1优先函数定义6.1对于优先矩阵M,如果存在函数f、g满足以下条件:若L=R,有f(L)=g(R)若LR,有f(L)g(R)称f、g为M的优先函数。注:M可为简单优先矩阵,也可为算符优先矩阵。,6.7.2Bell方法,Bell方法:有向图构造法。作两排结点:一排为fL,另一排为gR;LR,从L到R连一有向弧;LR,从R到L连一有向弧;L=R,从L到R和从R到L各连一有向弧;计算各结点能到达的结点数(包括自己)为该函数点的值。按定义6.1的条件判断

8、,若不满足则不存在优先函数。,文法G(E):EE+T|TTT*F|FF(E)|i,6.7.3Floyd方法,Floyd方法:逐次加一法。f(A)=g(A)=1;if(LR)and(fLgR)thenfL=gR+1;if(L=R)and(fLgR)thenfL=gR=max(fL,gR);if(有改变)thengoto;,文法G(E):EE+T|TTT*F|FF(E)|i,Floyd方法:逐次加一法。f(A)=g(A)=1;if(LR)and(fLgR)thenfL=gR+1;if(L=R)and(fLgR)thenfL=gR=max(fL,gR);if(有改变)thengoto;,例:设文法GS:SABc|bcAbBaS|S|a试构造其简单优先矩阵。,简单优先关系LRULRLRULP,PRLRUWP,WL;PR,例:设简单优先矩阵为,用Floyd方法(:逐次加一法)构造其优先函数。,Floyd方法:逐次加一法。f(A)=g(A)=1;if(LR)and(fLgR)thenfL=gR+1;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论