- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算符文法
算符文法
分类
对于一个算符优先文法,只要能构造出它的算符优先表,就可以利用算符优先分析方法,分析一个句子是否符合这个文法的定义。
那么定义FirstVT(P)={a|P(+=)a···或P(+=)Qa···,a属于终结字符集,而Q属于非终结字符集},其中···表示所有字符集
LastVT(P)={a|P(+=)···a或P(+=)···aQ,a属于终结字符集,而Q属于非终结字符集}
由以下两条规则来构造FirstVT集:
(1) 若有产生式P=a···、或P=Qa···,则a属于FirstVT(P);
(2) 若有a属于FirstVT(Q),且有产生式P=Q···,则a属于FirstVT(P);
类似的有构造LastVT集的规则:
(1) 若有产生式P=···a或P=···aQ,则a属于LastVT集。
(2) 若a属于LastVT(Q),且有产生式P=···Q,则a属于LastVT(P)集。
2构造FirstVT集的算法
Begin
For 每个非终结符P和终结符a Do F[P,a]=FALSE;
For 每个形如P=a···或P=Qa···的产生式……(1)
DO insert(P,a)
While Stack 非空 Do
Begin
把Stack 的顶项,记为(Q,a),上托出去;
For每条形如P=Q···的产生式DO …….(2)
Insert(P,a)
End of while;
END
3构造LastVT集的算法
将上述算法的对应的(1),(2)分别修改为
For 每个形如P-〉…a或P-〉…aQ的产生式,
For每条形如P-〉…Q的产生式
便可得。
假定G是一个不含空字符产生式的算符文法。对于任何一对终结符a,b,
(1)a=b,当且仅当G中含有形如P-…ab…或P-…aQb…的产生式;
(2)ab, 当且仅当G中含有形如P-…aR…的产生式,而R-〉b…或R-Qb…;
(3)ab, 当且仅当G中含有形如P-…Rb…的产生式,而R-…a或R-…aQ;
这样再结合上次的FirststVT和LastVT集的概念便可以由文法自动构造出算符优先表。
再定义一个素短语的概念:它至少含有一个终结符,并且,除它自身之外不再含任何更小的素短语,所谓最左素短语就是处于句型最左边的素短语。而一个算符优先文法G的任何句型的最左素短语是满足以下条件的最左子串NaNb…NcNdN(N是非终结符,a,b,c,d是终结符)
ab b=…=c cd
这样形成一个驼峰结构,当找到这样一个子串的时候,它们优先级相等的一段就可以归约为一个非终结符,否则报错。
因此算符优先文法分析就是找到这样的字串并归约,最终所有终结符都被成功归约为##时表明这个句子符合所定义的文法要求。
4构造优先表的算法
For每条产生式P-〉X1X2…Xn DO
For i=1;to n-1 Do
Begin
If xi和xi+1 均为终结符 then 置 xi=xi+1
If i=n-2 且 xi 和 xi+2都为终结符
但Xi+1为非终结 then 置 xi=xi+1
If xi为终结符而xi+1为非终结符 then
For FirstVt(xi+1)中的每个a DO
置 xia;
If xi为非终结符而xi+1为终结符 then
For LastVt(xi)中的每个a DO
置 axi;
END
5算符优先算法
K=1; s[k]=’#’
Repeat
把下一个输入符号读进a中;
Ifs[k]属于Vt,then j=k else j=k-1;
While s[j] a do
Begin
Reapeat
Q=s[j];
If s[j-1]属于Vt then j=j-1 else j=j-2
Until s[j]Q
把s[j+1]…s[k]归约某个N;
K=j+1
S[k]=N
End of while
If s[j]a or s[j]=a then
Begin k=k+1; s[k]=a end
Else 出错
UNTIL a=’#’
您可能关注的文档
最近下载
- 《指向高中生物核心素养的大单元教学设计研究》课题研究方案.doc
- Unit 4 What can you do Part C Story time(课件)-人教PEP版英语五年级上册.pptx VIP
- 学生会权益部部门招新.pptx VIP
- 《22G101三维彩色立体图集》.pdf VIP
- 一种快速测定萤石中氟化钙含量的方法.pdf VIP
- 人教版六年级数学上册同步辅导讲义教师版.doc
- 2025高中英语外刊时文阅读 巴黎奥运会之全红婵和潜水介绍 课件.pptx
- 植物生理学-扬州大学-中国大学MOOC慕课答案.pdf
- 三论我国发展注气提高采收率技术-李士伦.ppt
- 人教版六年级数学上册同步辅导讲义.doc
文档评论(0)