- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
习题课(第十三周)
习题课 语法分析方法 自上而下分析 LL(1)分析法 递归下降分析法 预测分析法 自下而上分析 算符优先分析法 LR分析法 2. E→TE; E→+E | ? ; T→FT ; T →T | ? ; F→PF ; F→ *F |? ; P→(E)|a|b|? FIRST(E) = FIRST(E) = FIRST(T) = FIRST(T) = FIRST(F) = FIRST(F) = FIRST(P) = FIRST(TE) = FIRST(+E) = FIRST(FT) = FIRST(PF) = FIRST(*F) = FIRST((E)) = 2. E→TE; E→+E | ? ; T→FT ; T →T | ? ; F→PF ; F→ *F |? ; P→(E)|a|b|? FIRST(E) = { (, a,b, ? }; FIRST(E) = { +, ?} FIRST(T) = { (, a,b, ? }; FIRST(T) = { (, a,b, ?, ?}; FIRST(F) = { (, a,b, ? }; FIRST(F) = { *, ?} FIRST(P) = { (, a,b, ? }; 该文法: (1)不存在左递归; (2)非终结符的各个产生式的候选首符集两两不相交; (3)计算FIRST(A)∩ FOLLOW(A) : FIRST(E) ∩ FOLLOW(E) = { +, ?} ∩{ # , ) }= Φ FIRST(T) ∩ FOLLOW(T) = { (, a,b, ?, ?} ∩ {+, # , ) } = Φ FIRST(F) ∩ FOLLOW(F) = { *, ?} { (, a,b, ?, +, # , ) } = Φ 满足LL(1)文法的三个条件,所以该文法G为LL(1)文法。 第五章 作业 P133 1 2 3 5(1)(2) 1. G1(E): E→E+T│T T→T*F│F F→ i │(E) 证明E+T*F是它的一个句型,指出该句型的所有短语,直接短语和句柄 G2:S→a│ ? │(T) T →T,S│S (1)(a,(a,a)) S ?(T) ?(T,S) ?(a,S) ?(a,(T)) ?(a,(T,S)) ?(a,(S,S)) ?(a,(a,S)) ?(a,(a,a)) S ?(T) ?(T,S) ?(T,S) ?(S,(T)) ?(S,(T,S)) ?(S,(T,a)) ?(S,(S,a)) ?(S,(a,a)) ?(a,(a,a)) G2:S→a│ ? │(T); T →T,S│S (((a,a), ?,(a)),a) FIRSTVT主程序: BEGIN FOR 每个非终结符P和终结符a DO F[P,a] := FALSE; FOR 每个形如P→a… 或P→Qa … 的产生式 DO INSERT (P, a); WHILE STACK非空 DO BEGIN 把STACK 的顶项 (Q, a) 弹出; FOR 每条形如P→Q … 的产生式 DO INSERT (P, a); END OF WHILE; END 构造优先关系表算法 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都为终结符 但Xi+1为非终结符 THEN 置Xi = Xi+2; IF Xi为终结符而Xi+1为非终结符 THEN FOR FIRSTVT(Xi+1)中的每个a DO 置 Xi a; IF Xi为非终结符而Xi+1为终结符 THEN FOR LASTVT(Xi)中的每个a DO 置 a Xi+1 END 输入串(a,(a,a))的算法优先分析过程 5. 文法G(S): S→AS|b A→SA|a 该文法的LR(0)项目有: 1. S→·AS 2. S→A
文档评论(0)