网站大量收购独家精品文档,联系QQ:2885784924

编译原理 6章.ppt

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理 6章

OPG优先关系的构造 (2)由直观方法构造算符优先关系 先乘除、后加减、指数优先 先左后右(加减)、先右后左(指数) 括号内优先,运算符小于其它VT符号。 OPG优先关系的构造 (3)由已知关系构造算符优先关系 ① U FIRSTvt b ?U→b… 或 U→Vb… ② U LASTvt a ?U→…a 或 U→…aV 结论: ( ) ≡ ( )(FIRST*)( FIRSTvt) ( ) ≡ ((LAST*)( LASTvt))T ( ) G44[E] E→ E+T | T T→ T*F | F F→(E)| i ( )= First= First*= Firstvt= × = ( ).First* = = × = ( ) .First *.Firstvt = + * i ( ) + * i ( ) G44[E] E→ E+T | T T→ T*F | F F→(E)| i G44[E] E→ E+T | T T→ T*F | F F→(E)| i Last= Last+= Lastvt= ( )= Last*. Lastvt= × = (Last*. Lastvt)T. ( ) = × = + * i ( ) + * i ( ) G44[E] E→ E+T | T T→ T*F | F F→(E)| i 素短语及句型分析 定义6.5 素短语:包含VT符号但不包含其它素短语的短语。 定理6.5 句型[vi]ai…[vj]aj[vj+1]最左素短语满足ai-1 ai ai+1… aj aj+1 G44[E] E→ E+T | T T→ T*F | F F→(E)| i 分析符号串i*(i+i) + * i ( ) + * i ( ) 步骤 符号栈 关系 输入串 最左素短语 1 # i*(i+i)# 2 #i *(i+i)# i 3 #v *(i+i)# 4 # v* (i+i)# 5 # v*( i+i)# 6 # v*(i +i)# i 7 # v*(v +i)# 8 # v*( v+ i)# 9 # v*( v+i )# i 10 # v*( v+v )# v+v 11 # v*(v = )# 12 # v*(= v) # (v) 13 # v*v # v*v 14 #v = # 6.7 优先函数及其构造 6.7.1 优先函数 定义6.1 对于优先矩阵M,如果存在函数f、g满足以下条件: ① 若L=R,有f(L)=g(R) ② 若LR,有f(L)g(R) ③ 若LR,有f(L)g(R) 称f、g为M的优先函数。 注:M可为简单优先矩阵,也可为算符优先矩阵。 6.7.2 Bell 方法 Bell方法:有向图构造法。 ①???作两排结点:一排为f L ,另一排为g R; LR, 从L到R连一有向弧; LR, 从R到L连一有向弧; L=R, 从L到R和从R到L各连一有向弧; ② 计算各结点能到达的结点数(包括自己)为该函数点的值。 ③ 按定义6.1的条件判断,若不满足则不存在优先函数。 文法G(E): E→E+T | T T→T*F | F F→(E) | i ? + * i ( ) + * i ? ? ( = ) ? ? + * i ( ) f 4 f+, g+, f(, g) 6 f*, g*, f+, g+, f(, g) 6 fi, g*, f+, g+,f(, g) 2 f(, g) 6 f), g*, f+, g+,f(,g) g 3 g+,f(,g) 5 g*, f+, g+, f(, g) 7 gi, f*, g*,f+, g+,f(, g) 7 g(, f*, g*, f+, g+, (, g) 2 f(, g) ? + * i ( ) + * i ? ? ( = ) ? ? f+ f* fi f( f) g+ g* gi g( g) f+ 1 1 f* 1 1 1 fi 1 1 1 f( 1 f) 1 1 1 g+ 1 g* 1 1 gi 1 1 1 g( 1 1 1 g) 1 f+ f* fi f( f) g+ g* gi g( g) f+ 1 1 f* 1 1 1 fi 1 1 1 f( 1 f) 1 1 1 g+ 1 g* 1 1 gi 1 1 1 g( 1 1 1 g) 1 4 6 6 2 6 3 5 7 7 2 for j:=1 until N do for i:=1

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档