【精品】【考研计算机专业课】天津大学 编译原理讲义 lr(0)分析表(可编辑.ppt
《【精品】【考研计算机专业课】天津大学 编译原理讲义 lr(0)分析表(可编辑.ppt》由会员分享,可在线阅读,更多相关《【精品】【考研计算机专业课】天津大学 编译原理讲义 lr(0)分析表(可编辑.ppt(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【考研计算机专业课】天津大学 编译原理讲义 LR(0)分析表(1)规范句型的活前缀规范句型的活前缀 所谓所谓活前缀活前缀是指规范句型的一个前缀,这种前缀不含句是指规范句型的一个前缀,这种前缀不含句柄之后的任何符号。柄之后的任何符号。之所以称为活前缀,是因为在右边增添一些终结符之后,之所以称为活前缀,是因为在右边增添一些终结符之后,就可以使它成为一个规范句型。就可以使它成为一个规范句型。例例,文法,文法G的产生式的产生式为为:ET|E+TTF|T*FF(E)|iT*i2+i3T*F+i3T+i3E+i3E+FE+T E句型句型T*i2+i3的活前缀为的活前缀为:;T;T*;T*i2因为因为i2是
2、句柄。是句柄。I字的前缀字的前缀是指该字的任意首部。是指该字的任意首部。(2)文法的文法的LR(0)项目项目设文法设文法G的某一产生式为的某一产生式为Ax1x2xn,则,则Ax1xixi+1xn称为文法称为文法G的的LR(0)项目项目。其中,其中,“”或在文法符号或在文法符号xi和和xi+1之间,之间,i=1,2,n-1;或在;或在x1之前;或在之前;或在xn之后。之后。(1)EaA(2)AcA(3)Ad例例,文法,文法GAd有两个有两个LR(0)项目项目:AdAdEaA有三个有三个LR(0)项目项目:EaAEaAEaA文法的文法的LR(0)(0)项目分成如下四类项目分成如下四类:AB 待归约
3、项目,其中,待归约项目,其中,BVNA归约项目归约项目S接收项目,其中,接收项目,其中,S是根符号是根符号Aa移进项目,其中,移进项目,其中,aVT(3)识别文法句型活前缀的识别文法句型活前缀的NFA识别文法句型活前缀的非确定有限自动机识别文法句型活前缀的非确定有限自动机(NFAM)包括包括(状状态、字母表、状态转换、初态、终态态、字母表、状态转换、初态、终态),定义如下,定义如下:1.1.对文法进行拓广,增加新的开始结点对文法进行拓广,增加新的开始结点(SE),定义文,定义文法的每一个项目。法的每一个项目。SESEEaAEaAEaA(1)SE(2)EaA(2)(3)AcA(4)Ad例例,文法
4、,文法GAdAdAcAAcAAcA(4)NFADFAI0=1,3,I1=2,I2=4,6,9,I3=5,I4=6,7,9,I5=8,I6=10(5)构造构造LR(0)项目集规范族项目集规范族构成识别一个文法活前缀的构成识别一个文法活前缀的DFA的项目集的项目集(状态状态)的全体的全体称为该文法的称为该文法的LR(0)项目集规范族项目集规范族。例例,句型,句型“acd”的识别过程的识别过程状态栈状态栈活前缀栈活前缀栈现行输入符号现行输入符号输入串输入串0#(初值初值)Acd#02#aCd#024#acD#0246#acd#0245#acA#023#aA#01#E#II.直接构造直接构造(1)定义
5、两个重要运算定义两个重要运算:项目集闭包项目集闭包Closure(I):1.若一个若一个LR(0)项目项目I,则此项目,则此项目Closure(I);2.若项目若项目ABClosure(I),则,则BClosure(I),其,其中中BVN;3.重复重复(2),直至,直至Closure(I)不扩大为止。不扩大为止。状态转换函数状态转换函数GO(I,X):GO(I,X)=Closure(J)其中,其中,J=任何形如任何形如AX的项目的项目|AXI(1)SE(2)EaA(2)(3)AcA(4)Ad例例,文法,文法GI0=Closure(I)=SE,EaA设设I=SE,则,则GO(I0,E)=SE=I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 考研计算机专业课 【精品】【考研计算机专业课】天津大学 编译原理讲义 lr0分析表可编辑 考研 计算机 专业课 天津大学 编译 原理 讲义 lr 分析 编辑
限制150内