- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章语结法分析
※只考虑算符(终结符)之间的优先关系 (1)算符文法 设有一文法G,如果G中没有形如A?…QR…的产生式,其中Q和R为非终结符,则称该文法为算符文法(OG文法)。 5.5.3 算符优先分析 (2)头符号集合和尾符号集合 设 a∈VT,P,R∈VN, 则: FIRSTVT(P)={a| P a…… 或 P Ra……}, = + LASTVT(P) ={a| P ……a 或 P …… aR}。 = + = + = + 设a,b∈VT,P,Q,R∈VN, ① a b , 当且仅当有 P?…ab… 或 P?…aQb… ; (3) 算符优先关系定义 ② a·b , 当且仅当有 P?…aR… ,且R b… 或 R Qb…; = + ③ a·b , 当且仅当有 P?…Rb… ,且R …a 或 R …aQ; = + (4)算符优先文法 如果算符文法G中的任何一对终结符a和b之间,仅满足上述一种关系,则G就是一个算符优先文法(OPG)。 = + = + 5.6 语法分析方法综合示例 G(Z):Z - dAZ | bAc A - aA | c |ε 【例5.13 】 给定文法如下: Ⅰ. 递归子程序法; Ⅱ. LL(1)分析法; ※ 试分别用下述分析法,对给定的符号串进行语法分析: Ⅲ. LR(0)( 或SLR(1))分析法; 设 给定的符号串为: α= bac ∵ Z = bAc = baAc = baε c = bac ∴ bac 是文法 G(Z) 的一个句子。 注 G(Z):Z-dAZ① | bAc② A-aA③ | e④ |ε⑤ Ⅰ. 构造递归子程序法: ⒈ 证明 G(Z)是 LL(1)文法: select(①)= first(dAZ)={ d } ※ 求选择集合: select(②)= first(bAc)={ b } select(③)= first(aA)={ a } select(④)= first(c) ={ e } select(⑤)= follow(A)= { d ,b ,c } ⑴ ⑵ ∵ 两组选择集合⑴, ⑵ 皆不相交, ∴ G(Z)是 LL(1) 文法! 即 递归子程序法可用!! Z子程序 主程序 ⒉ 构造递归子程序(框图): G(Z):Z-dAZ① | bAc② A-aA③ | e④ |ε⑤ 入口 a NEXT(w) 出口 遇?时 n y A A子程序 e NEXT(w) y n # NEXT(w) 结束 n y Z 开始 err0 入口 出口 d err3 NEXT(w) A n n y Z A c NEXT(w) y b err2 n y NEXT(w) ⒊ 分析过程示意: 入口 a NEXT(w) 出口 遇?时 n y A A子程序 e NEXT(w) y n 主程序 # NEXT(w) 结束 n y Z 开始 err0 bac# 设 待分析的符号串: 入口 出口 d err3 NEXT(w) A Z子程序 n n y Z A c NEXT(w) y b err2 n y NEXT(w) b b a a c c c c # # ▼ ■ G(Z):Z-dAZ① | bAc② A-aA③ | e④ |ε⑤ Ⅱ. LL(1)分析法: ⒈ 证明 G(Z)是 LL(1)文法: select(①)= first(dAZ)={ d } ※ 求选择集合: select(②)= first(bAc)={ b } select(③)= first(aA)={ a } select(④)= first(c) ={ e } select(⑤)= follow(A)= { d ,b ,c } ⑴ ⑵ ∵ 两组选择集合⑴, ⑵ 皆不相交, ∴ G(Z)是 LL(1) 文法! 即 递归子程序法可用!! 2. 构造 LL(1)分析表: LL(1) 分析表: G(Z):Z-dAZ{ d }① | bAc{ b }② A-aA{ a }③ | e{ e }④ |ε{b,c,d}⑤ ※ 带有选择集合的文法: d A Z e c b a # ⑤ ① ④ ⑤ ⑤ ③ ② 栈 当前符号 剩余序列 栈操作 逆序压栈 # # # c A # c # c A # c # c A
您可能关注的文档
最近下载
- 求阴影面积的常用方法.pdf VIP
- 2024年广东省深圳市盐田区梅沙街道招聘社区工作者真题含答案详解.docx VIP
- 英、美、中三国会计师事务所组织形式演变研究.pdf VIP
- 工会经费管理与内部审计问题分析及改进建议.docx VIP
- 电气管理课件.pptx VIP
- 2025中国现代文学史自考真题及答案 .pdf VIP
- 2025努力锻造忠诚干净担当的新时代政法铁军党课PPT课件.pptx VIP
- 富士达电梯MLVF-T无机房(CP40)电气原理图.pdf VIP
- 国家建筑标准设计图集-12S101 矩形给水箱.pdf VIP
- Pico Pico Neo 3 VR头盔 Pico Neo 3 0207 用户手册.pdf
文档评论(0)