当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

《程序设计语言与编译》课程PPT教学课件(高职)第十六讲 优先关系表的构造

资源类别:文库,文档格式:PPT,文档页数:39,文件大小:197.5KB,团购合买
(1)FIRSTVT集 FIRSTVT(P)={a|Pa…,或PQa…,aVT ,Q VN} 若P→a…或P→Qa…, 则aFIRSTVT(P); 若P→Q…, 则FIRSTVT(Q)FIRSTVT(P); 直至FIRSTVT(P)不再增大。
点击下载完整版文档(PPT)

5优先关系表的构造 (1) FIRSTVT集 FIRSTVT(P)aPa.,或PQaa∈VnQ∈V} 若P→>a.或P→>Qa,则a∈ FIRSTVT(P 若P→>Q…,则 FIRSTVT(Q∈ FIRSTVT(P; 直至 FIRSTVT(P)不再增大

5. 优先关系表的构造 (1)FIRSTVT集 FIRSTVT(P)={a|Pa…,或PQa…,aVT ,Q VN} 若P→a…或P→Qa…, 则aFIRSTVT(P); 若P→Q…, 则FIRSTVT(Q)FIRSTVT(P); 直至FIRSTVT(P)不再增大。 + +

(2 ASTVt集 LASTVT(P)={aPa或P.aQa∈V1Q∈V} 若P>.a或P→>.aQ,则a∈ LASTVT(P), 若P→>.Q,则 LASTVT( QCLASTVT(P); 直至 LASTVT(P)不再增大

(2)LASTVT集 LASTVT(P)={a|P...a,或P…aQ,aVT ,Q VN} 若P→...a或P→…aQ, 则aLASTVT(P); 若P→...Q, 则LASTVT(Q)LASTVT(P); 直至LASTVT(P)不再增大。 + +

之例G(E)E→B+TT T→T*FF F→(E) FIRSTVT LASTVT E + T F

例 G(E) E→E+T│T T→T*F│F F→(E) │i E T F FIRSTVT LASTVT ( i + * ( i ) i + * ) i * ) i ( i *

(3)构造优先关系表的算法 FOR每条产生式PX1X2XnDO FOR i: =1 TO n-1 DO BEGIN IFX和X均为终结符 THEN X=X+1; IFiXi+ END

(3)构造优先关系表的算法 FOR 每条产生式P→X1X2…Xn DO FOR i:=1 TO n-1 DO BEGIN IF Xi和Xi+1均为终结符 THEN Xi= Xi+1; IF iXi+1 END;

之例G(E)E→B+TT T→T*FF F→(E) FIRSTVT LASTVT E + T F 考察E→E+T中的E和+、+和T 考察T→T*F中的和*、*和F 考察F→(E)中的(和E、(和)、E和)

例 G(E) E→E+T│T T→T*F│F F→(E) │i E T F FIRSTVT LASTVT ( i + * ( i ) i + * ) i * ) i ( i * 考察E→E+T中的E和+ 、 +和T 考察T→T*F中的T和* 、 *和F 考察F→(E)中的(和E 、 (和) 、 E和)

算符优先关系表 $

+ + * * i i ( ( ) ) $ $ > > > > > > > > > > > > = = 算符优先关系表

LR分析法 1.LR(K)分析法 自底向上的LR分析法是指从左向右扫描 输入串,每次分析由分析栈中符号及向前 搜索K个输入符号以确定作为产生式右部 的短语(句柄)是否已在分析栈的栈顶形成, 从而决定应采取的动作。这种分析方法称 为LR(K)分析法。一般只考虑K的情况

二. LR分析法 1. LR(K) 分析法 自底向上的LR分析法是指从左向右扫描 输入串,每次分析由分析栈中符号及向前 搜索K个输入符号,以确定作为产生式右部 的短语(句柄)是否已在分析栈的栈顶形成, 从而决定应采取的动作。这种分析方法称 为LR(K)分析法。一般只考虑K1的情况

其组成为分析栈控制程序分析表输入串 输入串a1 a1 分析栈 驱动程序 输出 action goto 分析表

其组成为:分析栈,控制程序,分析表,输入串 输入串 分析栈 驱动程序 输出 action goto 分析表 s0 . . . sm-1 sm a1 ... ai ... $

2.分析栈 存放状态初始时置初始状态s栈里的 每一状态概括了从分析开始到某一时刻 已进行的分析工作

2. 分析栈 存放状态;初始时,置初始状态s0 ;栈里的 每一状态概括了从分析开始到某一时刻 已进行的分析工作

3.分析表 由 action[s,a]和 gotos, x]两个子表组成。 (1) action s, a定义了在状态s下,当前输入符号为 a时应采取的分析动作:移进归约接受,出错。 (2)goto表是一个状态及非终结符的二维矩阵, gotolS, X定义了在状态s下,面对文法符号x时的 状态转换

3. 分析表 由action[s,a]和goto[s,x]两个子表组成。 (1)action[s,a]定义了在状态s下, 当前输入符号为 a时应采取的分析动作: 移进, 归约,接受, 出错。 (2)goto表是一个状态及非终结符的二维矩阵, goto[s,x]定义了在状态s下, 面对文法符号x时的 状态转换

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共39页,可试读13页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有