编译程序的组织 (8).ppt
《编译程序的组织 (8).ppt》由会员分享,可在线阅读,更多相关《编译程序的组织 (8).ppt(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、12.5 2.5 上下文无关文法的句型分析上下文无关文法的句型分析 句型的分析句型的分析就是识别一个符号串是否为某文法的句型,就是识别一个符号串是否为某文法的句型,是某个推导的构造过程。是某个推导的构造过程。句型分析句型分析是识别一个输入符号串是否为语法上正确的是识别一个输入符号串是否为语法上正确的程序的过程。程序的过程。在语言的编译实现中,把完成句型分析的程序称为分在语言的编译实现中,把完成句型分析的程序称为分析程序或识别程序,分析算法又称析程序或识别程序,分析算法又称识别算法识别算法。2常见分析方法有常见分析方法有自顶向下分析自顶向下分析和和自底向上分析自底向上分析两类;两类;自上而下分析
2、法,自上而下分析法,是从文法的开始符号出发,反复使用各是从文法的开始符号出发,反复使用各种产生式,寻找种产生式,寻找“匹配匹配”于输入符号串的推导。于输入符号串的推导。自下而上的方法,自下而上的方法,则是从输入符号串开始,逐步进行则是从输入符号串开始,逐步进行 归约归约,直至归约到文法的开始符号,直至归约到文法的开始符号。3自上而下的语法分析自上而下的语法分析例:文法例:文法G G:S cAdS cAd A ab A ab A a A a识别输入串识别输入串w=cabdw=cabd是否该文法的句子是否该文法的句子 推导过程:推导过程:S cAd cabdScAda b4自下而上的语法分析自下而
3、上的语法分析例:文法例:文法G:S cAd A ab A a识别输入串识别输入串w=cabd是否该文法的句子是否该文法的句子规约过程:规约过程:S cAd cabd S A c a b d规范推导规范推导(1)E E+T E+T*F T+T*F T+T*i F+T*i i+T*i i+F*ii+i*i(2)E E+T T+T F+T i+T i+T*F i+F*F i+i*F i+i*F i+i*i(3)E E+T E+T*F E+T*i E+F*i E+i*i T+i*i F+i*i i+i*i(4)推导过程可能不唯一。推导过程可能不唯一。例如,文法例如,文法GEGE中从中从 E E 到到
4、i+i*i i+i*i 的推导有:的推导有:最左推导最左推导最右推导最右推导例:例:GE:EE+T|TTT*F|FF(E)|i形式上,形式上,从符号串从符号串 到符号串到符号串 的推导序列的推导序列 *xUy xuy*总有总有 x VT*(y VT*)时,称为时,称为最左(右)推导最左(右)推导定义:最左(右)推导所得句型称为定义:最左(右)推导所得句型称为左(右)句型;左(右)句型;最最右推导右推导称为称为规范推导规范推导;右句型右句型称为称为规范句型规范句型。每个每个句子句子都有相应的最左和最右推导,因此,都有相应的最左和最右推导,因此,句子即是句子即是左句型左句型也是也是右句型右句型(规
5、范句型)(规范句型)并不是每个句型都有最左和最右推导并不是每个句型都有最左和最右推导规范推导规范推导 E E+E+i*T E+i*T 即不是左句型,也不是右句型即不是左句型,也不是右句型因为因为最左(右)推导不出这个句型最左(右)推导不出这个句型例:例:GE:EE+T|TTT*F|FF(E)|i对于给定的符号串对于给定的符号串w,采用,采用自顶向下自顶向下的分析来判断的分析来判断w是否为是否为L(GS)的句子的常见方法是:的句子的常见方法是:试图建立从开始符试图建立从开始符 S到到w最左推导最左推导:S*w 显然,每步推导时,对应于最左非终结符相应的产生式可能显然,每步推导时,对应于最左非终结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译程序的组织 8 编译程序 组织
限制150内