- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 计算算符优先关系 例文法G’[E’]:(0) E’→#E#(1) E→E+T(2) E→T(3) T→T*F(4) T→F(5) F→P?F|P(6) P→(E)(7) P→i FIRSTVT(E’)={#}FIRSTVT(E)={+,*,?,(,i}FIRSTVT(T)={*,?,(,i}FIRSTVT(F)={?,(,i}FIRSTVT(P)={(,i} LASTVT(E’)={#}LASTVT(E)={+,*,?,),i}LASTVT(T)={*,?,),i}LASTVT(F)={?,),i}LASTVT(P)={),i} * (0) E’→#E# (1) E→E+T (2) E→T (3) T→T*F(4) T→F (5) F→P?F | P (6) P→(E) (7) P→i 3)‘??’关系找形如:A→…Bb…的产生式E#: 则 LASTVT(E)??#E+: 则 LASTVT(E)??+ T*: 则 LASTVT(T)??* P?: 则 LASTVT(P)??? E): 则 LASTVT(E)??) 2)‘??’关系找形如A→…aB…的产生式#E:则 #??FIRSTVT(E)+T: 则 +??FIRSTVT(T) *F: 则 *??FIRSTVT(F)?F: 则 ???FIRSTVT(F)(E: 则 (??FIRSTVT(E) 1)‘=’关系由产生式(0)和(6),得#=#, ( = ) * * 算符优先分析的句柄识别 4+5*6+7 4*(5+6)*7 ? ? 当前算符决定了前一个运算能否进行 处理次序取决于算符的优先级—算符的优先级决定了归约次序 算符优先运算都至少涉及到一个运算符,这样单个非终结符的归约就失去了意义,有必要对归约对象进行重定义。 短语--〉素短语—至少含一个终结符的最小短语 * 最左素短语的判断 算符文法的任何一个句型应为如下形式: #N1a1N2a2 ... Nnan Nn+1# 其中N k(1≤k≤n+1)为非终结符或空,ak(1≤k≤n)为终结符 算符优先文法句型的最左素短语NiaiNi+1ai+1 ... Njaj Nj+1满足: ai-1 ?? ai ai =ai+1 =…… =aj-1 =aj aj ?? aj+1 即:ai-1 ?? ai=ai-1=...= aj-1 = aj ?? aj+1 * 1 k:= 1; S [ k ] := “#” 2 repeat read 下一符号到a; 3 if S[ k ] ? Vt then j := k else j := k-1; 4 while S[ j ] a do 5 { repeat 6 Q := S[ j ]; 7 if S[ j-1] ? Vt then j := j-1 8 else j:= j-2 9 until S [ j ] Q; 10 将 S[ j+1] S[ j+2 ]…S[ k ]归约到某个N; 11 k := j+1; 12 S[ k ]:= N; 13 } 14 if ( S [ j ] a or S[ j ] = a) 15 then { k := k+1; S[ k] := a} 16 else error 17 until a = “#” 算符优先分析算法 5+6*(7*8+9)^2+10 ------模式匹配 * 分析程序模型 总控程序 算符优先关系表 产生式 输入串# # 输出 * 算符优先分析法的优缺点 简单,直观,有利于表达式分析,易于手工实现 比规范归约快 对i+i分别进行算符优先分析和规范规约分析,加以比较 一般语言的方法很难满足算符优先文法的条件 可能导致把错误的句子得到正确的归约 例6.6 S-S; D | D D-D(T) | H H- a | (S) T-T+S | S 算符优先分析(a+a)# * 典型例题及解答(121页) 例题1 布尔表达式文法G[B]: (1) B-B o T | T (2) T-T a F | F (3) F-n F | (B) | t | f 算符优先文法?分析ntofat# * 优先关系确定原则: (1)i的优先级最高 (2)?优先级次于i,右结合 (3)*和/优先级次之,左结合 (4
您可能关注的文档
- 贝聿铭·德国柏林历史博物馆素材.ppt
- 备煤车间消防系统及防火安全管理制度素材.ppt
- 奔泰全屋水处理方案(延吉)素材.ppt
- 奔图硒鼓的维护方法素材.ppt
- 本体性教学内容与教学设计2014-5素材.ppt
- 第1章接入网概览.ppt
- 苯环红外谱图的特点及其原因素材.ppt
- 苯及同系物化学性质素材.ppt
- 第1章可编控制器基础cxj概览.ppt
- 苯乙烯运输和仓储过程_聚合风险1.1素材.ppt
- 2023年陕西省商洛市柞水县两河乡招聘社区工作者真题参考答案详解.docx
- 2023年陕西省延安市宝塔区青化砭镇招聘社区工作者真题参考答案详解.docx
- 2023年陕西省汉中市西乡县罗镇乡招聘社区工作者真题及参考答案详解.docx
- 2023年陕西省延安市洛川县永乡招聘社区工作者真题及答案详解1套.docx
- 2023年陕西省商洛市商州区三岔河乡招聘社区工作者真题及参考答案详解一套.docx
- 2023年陕西省宝鸡市陇县八渡镇招聘社区工作者真题及参考答案详解一套.docx
- 2023年陕西省延安市洛川县石泉乡招聘社区工作者真题及参考答案详解一套.docx
- 2023年陕西省商洛市商州区沙河子镇招聘社区工作者真题附答案详解.docx
- 2023年陕西省咸阳市礼泉县赵镇招聘社区工作者真题及参考答案详解1套.docx
- 2023年陕西省商洛市丹凤县留仙坪乡招聘社区工作者真题及参考答案详解一套.docx
文档评论(0)