编译原理第五章课件——张淑艳.ppt

编译原理第五章课件——张淑艳.ppt

ID:48036996

大小:1.23 MB

页数:99页

时间:2020-01-14

编译原理第五章课件——张淑艳.ppt_第1页
编译原理第五章课件——张淑艳.ppt_第2页
编译原理第五章课件——张淑艳.ppt_第3页
编译原理第五章课件——张淑艳.ppt_第4页
编译原理第五章课件——张淑艳.ppt_第5页
资源描述:

《编译原理第五章课件——张淑艳.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、编译原理语法分析——自下而上分析第五章语法分析——自下而上分析自上而下分析法(Top-down)自下而上分析法(Bottom-up)若SZ则ZL(G[S])否则ZL(G[S])+G[S]存在主要问题:左递归问题回溯问题主要方法:递归子程序法LL分析法自顶向下分析算法的基本思想为:若ZS则ZL(G[S])否则ZL(G[S])+G[S]自底向上分析算法的基本思想为:存在主要问题:可规约串的识别问题主要方法:算符优先分析法LR分析法语法分析的方法:自下而上分析法(Bottom-up)基本思想:从输入串开始,逐步进行“归约”,直到文法的开始符号。即从树末端开始

2、,构造语法树。所谓归约,是指根据文法的产生式规则,把产生式的右部替换成左部符号。若ZS则ZL(G[S])否则ZL(G[S])+G[S]自底向上分析算法的基本思想为:存在主要问题:可规约串的识别问题主要方法:算符优先分析法LR分析法55分析过程是重复以下步骤:1、找出当前句型的可规约串x2、找出以x为右部的规则X->x3、把x规约为X,产生语法树的一支关键:找出当前句型的可规约串x(或其变形),这不是很容易。G(E):Ei

3、E+E

4、E-E

5、E*E

6、E/E

7、(E)i*i+iE*i+iE*E+iE+iE+EEi+*EiiEEEE5.1.1归约采用“移进-归约”思

8、想进行自下而上分析。基本思想:用一个寄存符号的先进后出栈,把输入符号一个一个地移进到栈里,当栈顶形成某个产生式的候选式时,即把栈顶的这一部分替换成(归约为)该产生式的左部符号。例:设文法G(S):(1)SaAcBe(2)Ab(3)AAb(4)Bd试对abbcde进行“移进-归约”分析。abbcdebabcdeAabcdebAacdeAacdecAadedcAaeabbcdeeBcAaSBcAaebdbaceSABA分析树和语法树不一定一致。自下而上分析过程:边输入单词符号,边归约。核心问题:识别可归约串5.1.2规范归约定义:令G是一个文法,S是文法的开始

9、符号,假定是文法G的一个句型,如果有且则称是句型相对于非终结符A的短语。特别是,如果有A,则称是句型相对于规则A的直接短语。一个句型的最左直接短语称为该句型的句柄。考虑文法G(E):ET

10、E+TTF

11、T*FF(E)

12、i和句型i1*i2+i3:EE+TE+FE+i3T+i3T*F+i3T*i2+i3F*i2+i3i1*i2+i3在一个句型对应的语法树中,以某非终结符为根的两代以上的子树的所有末端结点从左到右排列就是相对于该非终结符的一个短语,如果子树只有两代,则该短语就是直接短语。最左直接短语称为句柄。EFFTTT

13、i1+*EFi3i2短语:i1,i2,i3,i1*i2,i1*i2+i3直接短语:i1,i2,i3句柄:i1可用句柄来对句子abbcde进行归约句型归约规则abbcde(2)AbaAbcde(3)AAbaAcde(4)BdaAcBe(1)SaAcBeSSbAbdaeABccS定义:假定是文法G的一个句子,我们称序列n,n-1,,0是的一个规范归约,如果此序列满足:1n=20为文法的开始符号,即0=S3对任何i,0

14、bcdeabbcde显然这是一个最右推导。规范归约是关于是一个最右推导的逆过程最左归约规范推导由规范推导推出的句型称为规范句型。bdbaceSABAdbaceSABAdaceSABaceSABS对规范句型来说句柄的右边不会出现非终结符规范归约的实质是,在移进过程中,当发现栈顶呈现句柄时就用相应产生式的左部符号进行替换5.1.3符号栈的使用和分析树的表示栈是语法分析的一种基本数据结构。’#’作为栈底符号考虑文法G(E):ET

15、E+TTF

16、T*FF(E)

17、i输入串为i1*i2+i3,分析步骤为:步骤符号栈输入串动作0#i1*i2+i3#预备1#i1*i2+i3

18、#进2#F*i2+i3#归,用F→i3#T*i2+i3#归,用T→F4#T*i2+i3#进G(E):ET

19、E+TTF

20、T*FF(E)

21、i步骤符号栈输入串动作4#T*i2+i3#进5#T*i2+i3#进6#T*F+i3#归,用F→i7#T+i3#归,用T→T*F8#E+i3#归,用E→T9#E+i3#进G(E):ET

22、E+TTF

23、T*FF(E)

24、i步骤符号栈输入串动作9#E+i3#进10#E+i3#进11#E+F#归,用F→i12#E+T#归,用T→F13#E#归,用E→E+T14#E#接受G(E):ET

25、E+TTF

26、T*FF(E)

27、i移进:把下一

28、个输入符号

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。