编译原理51-自下而上分析基本问题_第1页
编译原理51-自下而上分析基本问题_第2页
编译原理51-自下而上分析基本问题_第3页
编译原理51-自下而上分析基本问题_第4页
编译原理51-自下而上分析基本问题_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

第五章语法分析-自下而上分析Bottom-upParsing自下而上语法分析优先分析法简单优先分析法*算符优先分析法LR分析法-YACC第五章语法分析5.1自下而上分析根本问题5.2算符优先分析5.3LR分析5.4YACC5.1自下而上分析根本问题5.1.1归约5.1.2标准归约简述5.1.3符号栈的使用和语法树的表示1.自下而上分析过程2.自下而上分析面临的问题1.自下而上分析过程-补充例

G[S]:S→cAd A→ab A→a识别输入串

cabd是否该文法的句子

ScAdab自下而上分析过程中的每一步,都是从当前串中选择一个子串,将它归约到某个非终结符号,该子串称为“可归约串〞G[S]:S→cAd A→ab A→acdabASScAdab2.自下而上分析面临的问题当串中的某局部和某个产生式右部匹配时,该不该归约?如何确定"可归约串"?a不是"可归约串",ab是"可归约串"可归约串最左素短语句柄算符优先分析标准规约如何精确定义“可归约串〞?本章核心1.采用哪一种自下而上分析方法?2.如何定义可归约串?3.如果在当前符号串中确定可归约串?5.1.1归约G: (1)S→aAcBe

(2)A→b

(3)A→Ab

(4)B→d识别输入串abbcde#是否该文法的句子

abbcdeAABS例:p83abbcdeAABSG: (1)S→aAcBe

(2)A→b

(3)A→Ab

(4)B→d输入串abbcde#可行的实现方案:边扫描,边归约最左归约(标准归约)复习最左推导、最右推导、最左归约、最右归约、标准推导、标准归约的概念aG:(1)S→aAcBe

(2)A→b

(3)A→Ab

(4)B→d

输入串abbcde#baAbc何时移进,何时归约?归约谁?如何确定可归约串?aaAaAaAcaAdcaABcaABeS动作移进移进归约移进归约移进归约归约移进移进ab(2)b(3)cd(4)e(1)图5.1符号栈的变迁移进-归约分析用栈实现标准归约栈顶出现可归约串即可归约

5.1.2标准归约简述1.短语、直接短语、句柄的定义2.从句型的语法树上找出句型的短语、直接短语、句柄3.标准归约与句柄的关系精确定义标准归约过程中的可归约串短语〔Phrase〕SαAδ,且Aβ,那么称β是句型αβδ 相对于非终结符A的短语直接短语(简单短语,Simplephrase)SαAδ,且Aβ,那么称β是句型αβδ 相对于规那么A→β的直接短语*+*句柄(Handle)一个句型的最左直接短语称为该句型的句柄.1.定义找出句型

i1*i2+i3

的所有

短语,直接短语,句柄.G: E→T|E+T T→F|T*F F→(E)|iTFEE+T*FTFi1i2i3短语:i1,i2,i3,i1*i2,i1*i2+i3

直接短语:i1,i2,i3,句柄:i1一棵子树的所有末端结点自左至右排列起来就形成一个相对子树根的短语.2.从语法树中p85例5.1p85例5.2

找出句型

E+T*F+i的所有短语,

直接短语,句柄G: E→T|E+T T→F|T*F F→(E)|i短语:E+T*F+i

E+T*F,i,T*F直接短语:T*F,i句柄:T*FEE+TFiE

+TT

*

FG: (1)S→aAcBe

(2)A→b

(3)A→Ab

(4)B→dabbcdeAABS例:p83abaAbcaaAaAaAcaAdcaABcaABeS移进移进归约移进归约移进归约归约移进移进ab(2)b(3)cd(4)e(1)图5.1符号栈的变迁标准归约过程中的可归约串是句柄3.标准归约与句柄的关系标准归约精确定义P86假定α是文法G的一个句子, 如果序列:αn,αn-1,……,α0满足如下条件, 那么αn,αn-1,……,α0是一个标准归约:(1)αn=α是给定的句子(2)α0=S是文法的开始符号(3)对任何i,0<in,αi-1是从αi经过把句柄替换为相应文法产生式的左部符号而得到的。结论标准归约过程中的可归约串是句柄标准归约的实质:在移进的过程中,当发现栈顶呈现句柄就用相应的产生式的左部符号进行替换.标准归约的中心问题:如何寻找或确定一个句型的句柄?5.1.3符号栈的使用和语法树的表示abaAbcaaAaAaAcaAdcaABcaABeS移进移进归约移进归约移进归约归约移进移进ab(2)b(3)cd(4)e(1)abaAbcaaAaAaAcaAdcaABcaABeS移进移进归约移进归约移进归约归约移进移进ab(2)b(3)cd(4)e(1)移进-归约分析用栈实现标准归约G[S]: S→cAd A→ab A→aScAdab

温馨提示

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

评论

0/150

提交评论