第四章3-2-计算predict集.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
三个集合的定义 First(?) = { a ?VT | ??* a......} ? (if ??*? then {?} else ? ) Follow(A) = { a ?VT | S?+ ....Aa..... } ? (if S?*......A then {#} else ? ) Predict(A→?) = First(?) , 当??First(?) = First(?)-{ ?} ? Follow(A) ,当??First(?) 计算First(X)集 对每一文法符号X计算First(X) 若X ?VT,First(X)={X} 若X ?VN则 First(X)={a| X?a…?PSet,a ?VT} 若X ?VN,且有产生式X??,则{?} ? First(X) 若X ?VN,有产生式X?Y1Y2…Yn ,且Y1,Y2,…,Yi ?VN 当Y1,Y2,…,Yi-1?* ?, 则First(Y1)- {?} , First(Y2)- {?},… First(Yi-1)- {?}, First(Yi)都包含在First(X)中。 当Yi ?* ?(i=1,2,…n), 将{?}并入First(X) 中。 计算First(?)集 若符号串?=X1X2…Xn, 当X1,X2,…Xi-1?*?,Xi不能 ?* ?,则 First(?)=?1i-1(First(Xj)-{?}) ? First(Xi) 若所有Xi都能?*?,则 First(?)= ?1nFirst(Xj) 计算Follow集 1: 对所有A?VN,令Follow(A):={ };对开始符 S,令Follow(S):={# }; 2: 若有产生式A→xBy, 如果??First(y) 则: Follow(B):=(First(y)-{?}) ? Follow(A) 否则 Follow(B):= First(y) 3: 重复2和3,直至对所有A?VN,Follow(A)收 敛为止。 计算Predict集 E? ? T E’ E’ ? + T E’ | ? T ? F T’ T’ ? * F T’ | ? F ? id | ( E ) 3型(正则)文法与自动机 3型文法与产生式的形式为: A ? ?B 或 A ? ? 的文法等价。其中??VT+。 定理:3型文法与自动机等价 3型文法到自动机的转换 设给定3型文法G=(VN, VT, P, Z),构造一 个自动机A=(S,?,?,s0,F),使得L(A)=L(G)。 构造过程: (1)令S = VN?{K},?=VT,s0= Z , F={K}. (2)对G中产生式形如: X ? aY 则定义 ?(X,a)= Y?P X ? a 则定义 ?(X,a)= K?P 其中K是新符号。 则L(A)= L(G) 自动机到3型文法的转换 给定自动机A=(S,?,?,s0,F),构造等价的3型文法G=(VN, VT, P, Z),使得L(A)=L(G) (只有一个初始状态) 构造过程: 设F’= {Y| Y?F且Y没有输出边} (1) 令VN= S\F’,VT= ?, Z= s0 (2) 如有?(X,a)=Y : 如果Y?F,则定义X?a 如果Y?F’,则定义X?aY 则L(A)= L(G) * * Predict(A→?) = First(?) ,当First(?)不含? = First(?)-{ ?} ? Follow(A) ,当First(?)含? Predict( E?TE’ ) = first(TE’) = { id , ( } Predict( E’ ?+TE’ ) = first(+TE’) = { + } Predict( E’ ? ? ) = follow(E’) = { ) , # } Predict( T ?FT’ ) = first(FT’) = { id , ( } Predict( T’ ?*FT’ ) = first(*FT’) = { * } Predict( T’ ? ? ) = follow(T’) = { + , )

文档评论(0)

***** + 关注
实名认证
文档贡献者

本账号下所有文档分享可拿50%收益 欢迎分享

1亿VIP精品文档

相关文档