算符优先分析法详解(2)

2020-12-22 09:29

算符优先分析法。

算符优先表的构造算符优先表的构造方法:通过检查G的每个产生式的每个候选式,可以首先找出满足a=b的终结符对;为了找出所有满足关系<和>的终结符对,首先需要对G的每个非终结符P构造两个集合:FIRSTVT(P) LASTVT(P)

算符优先表的构造FIRSTVT(P)={a|P+a…或P+Qa…,a∈VT而Q∈VN} LASTVT(P)={a|P+…a或P+…aQ,a∈VT而Q∈VN}有了这两个集合后,就可以通过检查每个产生式的候选式确定满足关系<和>的所有终结符对。

四川大学计算机学院金军

7

四川大学计算机学院

金军

8

算符优先表的构造假定有产生式的一个候选式形为…aP…,那么,对任何b∈FISTVT(P),a<b;假定有产生式的一个候选式形为…Pb…,那么,对任何a∈LASTVT(P),a>b。

FIRSTVT和LASTVT集合FIRSTVT(P)的构造:若有产生式P→ a…或P→ Qa…,则 a∈FIRSTVT(P);若a∈FIRSTVT(Q),且有产生式P→ Q…,则a∈FIRSTVT(P)。

LASTVT(U)的构造:若有产生式U→…a或U→…aV,则 a∈LASTVT(U);若a∈LASTVT(V),且有产生式U→…V,则 a∈LASTVT(U)。四川大学计算机学院金军 9四川大学计算机学院金军 10

FIRSTVT构造算法建立一个二维布尔数组F[P, a],使得F[P, a]为真的条件适当且仅当a∈FIRSTVT(P);再用一个栈STACK,把所有初值为真的数组元素F[P, a]的符号对(P, a)全都放到栈中,对栈施加如下操作:如栈不空,弹出栈顶符号对记作(Q, a),查看是否有形如P Q…的产生式,若有,且 a∈FIRSTVT(P),则将F[P, a]置为真,并把 (P, a)入栈;重复上步,直到栈空为止。四川大学计算机学院金军 11

优先表构造算法有了每个非终结符P的FISTVT(P)和 LASTVT(P)之后,就能构造文法G的优先表。其算法如下:

四川大学计算机学院金军

12


算符优先分析法详解(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:龙湾学校乡村少年宫书法组活动计划

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: