- 1、本文档共124页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 语法分析;§4.6 语法分析——自下而上分析;二、移进—归约法;例:设文法G[S]: S→aAcBe
A→b | Ab
B→d
问abbcde是不是该文法的句子?
步骤 符号栈 输入流 动作
0 # abbcde#
1 #a bbcde# 移进
2 #ab bcde# 移进
3 #aA bcde# 归约,用A→b
4 #aAb cde# 移进
5 #aA cde# 归约,用A→Ab
6 #aAc de# 移进
7 #aAcd e# 移进
8 #aAcB e# 归约,用B→d
9 #aAcBe # 移进
10 #S # 归约,用S →aAcBe
11 #S # 成功;三、关键问题;优先分析法有两种:
①简单优先分析法(规范归约)——求出文法所有符号之间的优先关系,以此确定归约过程中的句柄。
②算符优先分析法(不规范归约)——求出文法所有终结符之间的优先关系,以此确定归约过程中的可归约串。;4.7.1、简单优先分析法概述;优先关系的定义;优先关系确定;相邻文法符号之间的优先关系
在句型中,句柄内各相邻符号之间具有相同的优先级。相同优先级用“ ”。
由于句柄要先归约,所以规定句柄两端符号的优先级要比位于句柄之外的相邻符号的优先级高。优先级低于表示为“ ”,优先级高于表示为:“ ”。
某句型中:N1…Ni-1 Ni …… Nj N j+1…Nn.
;优先关系的例子;优先关系矩阵;# b ( ( a a ) a ) b #;识别过程(例子续);若有文法G[S] :S ?bAb A ?(B | a B ? Aa)
根据= 关系的定义,由文法产生式可求得各个文法符号之间的优先关系。
1.求=关系:由S ?bAb A ?(B | a B ? Aa)可知:b=A, A=b, (=B, A=a, a=)。// A ?…XY…,X=Y
2.求关系:
由S ?bAb ,且A ?+ (B ,A ?+ a 可知:b (, ba。
由A ? (B 且B ?+ (B … , B ?+ a … , B ?+ A … ,可知:((,(a, (A // A ?…XB… B?+Y XY
3.求关系:
由S ?bAb ,且A ?+ … ) ,A ?+ … B, A ?+a , 可知: )b,ab,Bb ;
由B ? Aa)且A ?+ … ) ,A ?+a ,A ?+ … B ,可知: )a,aa,Ba ;
//A ?…BD… B?+…X D?*Y… XY;简单优先文法;§4.7.2 算符优先分析法;2 两个相邻终结符 a , b 之间的优先关系:
a b a的优先级??于b
a = b a的优先级等于b
a b a的优先级高于b
;注意:优先关系与符号出现的左右顺序有关
数学中: a b 可以 b a
但是 a b 不能 b a
例如:E→E+E | E*E | (E) | i
( + 但是 + (
3 逻辑结构图:;二、算符优先文法和优先表的构造 1 算符优先文法(OPG文法);三种关系的语法树:
a=b 其中δ为ε或为B,这样a, b在同一句柄中同时归约所以优先级相同。
a b 其中δ为ε或为C。a,b不在同一句柄中,b先归约,所以a的优先级低于b。
ab 其中δ为ε或为C,a、b不在同一句柄中,a先归约,所以a的优先性大于b。;(3)OPG文法:设有一个OG文法,如果在任意两个终结符号之间,在 、 和 = 中最多只有一种优先关系成立,则该OG文法称为OPG文法。
例如:表达式文法:E→E+E | E*E | (E) | i
E→…+E 且 E=E*… 有 + *
又 E→E*… 且 E=…+E 有 + *
∴它是OG文法,但它不是OPG文法。
改写: E→E+T | T
T→T*F | F
F→(E) | i
是 OPG文法;2 优先关系表的构造方法;(2)构造优先关系表的算法:
输入:算符文法G 输出:关于G的优先关系表 方法:
①为每一个非终结符P计算FirstVT(P)和LastVT(P)
②执行算法:
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都为VT ,但xi+1为VN then 置 xi=xi+2;
if xi为VT 而xi+1为VN then
您可能关注的文档
- 1_1数据结构课程说明.ppt
- 1-第一章_概论.ppt
- 1计算机考试算法题二.doc
- 1章SQLServer.ppt
- 2-1-实验要求-词法分析.ppt
- 02-计算机的逻辑部件01.ppt
- 03-1 计算机硬件基础.ppt
- 06 属性文法和语法制导翻译.ppt
- 7作用于单链表的算法.ppt
- 8_SQL的系统特征.ppt
- 2025中国冶金地质总局所属在京单位高校毕业生招聘23人笔试参考题库附带答案详解.doc
- 2025年01月中国人民大学文学院公开招聘1人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2024黑龙江省农业投资集团有限公司权属企业市场化选聘10人笔试参考题库附带答案详解.pdf
- 2025汇明光电秋招提前批开启笔试参考题库附带答案详解.pdf
- 2024中国能建葛洲坝集团审计部公开招聘1人笔试参考题库附带答案详解.pdf
- 2024吉林省水工局集团竞聘上岗7人笔试参考题库附带答案详解.pdf
- 2024首发(河北)物流有限公司公开招聘工作人员笔试参考题库附带答案详解.pdf
- 2023国家电投海南公司所属单位社会招聘笔试参考题库附带答案详解.pdf
- 2024湖南怀化会同县供水有限责任公司招聘9人笔试参考题库附带答案详解.pdf
- 2025上海烟草机械有限责任公司招聘22人笔试参考题库附带答案详解.pdf
文档评论(0)