编译原理作业解析---第四章语法分析.ppt

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

编译原理作业辅导—— 第四章语法分析 第七次作业:P142 1(1)(4) P143 2(2) 1. 试分别消除下列文法的直接左递归(采用两种方法——重复法和改写法) (1)G[E]: E::=T | EAT ……① T::=F | TMF ……② F::=(E) | i ……③ A::=+ | - ……④ M::=* | / ……⑤ 第七次作业:P142 1(1)(4) P143 2(2) 先采用“重复法”: E::=T{AT} T::=T{MF} F::=(E) | i A::=+ | - M::=* | / 第七次作业 P142 1(1)(4) P143 2(2) 先采用“重复法”: Z::=V1 V1::=V2 {iV2} V2::=V3 {+V3} V3::=)V1* | ( 第七次作业 P142 1(1)(4) P143 2(2) 2. 试分别消除下列文法的间接左递归 (2)G[Z]: Z::=AZ | b ……① A::=Z A | a ……② 将②式代入①式可得, Z::=ZAZ | aZ | b 消除左递归后得到: Z::=(aZ | b)Z’ Z’::=AZZ’ | ε A::=ZA | a (保留) 第八次作业 P143 4(1)5 P144 6(1)(2) 9 4. (1) 用高级语言写一个识别下面文法句子递归子程序 文法G[A]: A::=[B ……① B::=X] | BA ……② X::=Xa | Xb | a | b ……③ 消除该文法的左递归和回溯,得到文法如下: A ::= [B B ::= X]B’ B’::= AB’ | ε X ::= aX’ | bX’ X’::= aX’ | bX’|ε 第八次作业 P143 4(1)5 P144 6(1)(2) 9 用类Pascal语言写出其递归子程序: P(A): SCIN IF ch=‘[’ THEN READ (ch) ELSE ERROR P(B) SCOUT P(B): SCIN P(X) IF ch=‘]’ THEN READ (ch) ELSE ERROR P(B’) SCOUT P(B’): SCIN IF ch=‘#’THEN SCOUT ELSE P(A) P(B’) SCOUT 第八次作业P143 4(1)5 P144 6(1)(2) 9 用类Pascal语言写出其递归子程序: P(X): SCIN IF ch=’a‘ THEN { READ (ch) P(X’) } ELSE IF ch=’b‘ THEN { READ (ch) P(X’) } ELSE ERROR SCOUT P(X’): SCIN IF ch=’]‘ THEN SCOUT ELSE IF ch=’a‘ THEN { READ (ch) P(X’) } ELSE IF ch=’b‘ THEN { READ (ch) P(X’) } ELSE ERROR SCOUT 第八次作业P143 4(1)5 P144 6(1)(2) 9 框图法表述:(仅给出P(A)和P(X’)的框图形式,其余从略) 第八次作业P143 4(1)5 P144 6(1)(2) 9 5. 对下面的文法G[E]: E ::= TE’ E’::= +E |ε T ::= FT’ T’::= T |ε F ::= PF’ F’::= *F’ |ε P ::= (E) |a |b |∧ (1)计算这个文法的每个非终结符号的FIR

文档评论(0)

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

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

1亿VIP精品文档

相关文档