编译原理复习题目集答案 .pdfVIP

  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文档。上传文档
查看更多

编译原理复习题⽬集答案

第4章词法分析

重点内容:正规式转化为DFA

a、正规式-NFA

b、NFA-DFA(⼦集法)

c、DFA化简(分割法)

题⽬1:课件例题:

a、为R=(a|b)*(aa|bb)(a|b)*构造NFA

b、从NFA构造DFA的算法

c、化简

题⽬2:

4.7例1:构造正规式相应的DFA:1(0|1)*101

按照以下三步:

(1)由正规表达式构造转换系统(NFA)

(2)由转换系统(NFA)构造确定的有穷⾃动机DFA

(3)DFA的最⼩化

答:(1)构造与1(0|1)*101等价的NFA

(2)将NFA转换成DFA:采⽤⼦集法,即DFA的每个状态对应NFA的⼀个状态集合:

除X,A外,重新命名其他状态:

1、将M的状态分成⾮终态和终态集{X,A,B,C}和{D}。

2、寻找⼦集中不等价状态{X,A,B,C}={X},{A,B}{C}={X}{A}{B}{C},⽆需合并。最后⽣成

DFA:

题⽬3:⾃习、书本练习4.7,参考答案见《z4书本练习4.7.doc》已知⽂法G[S]:

S→aA|bQA→aA|bB|bB→bD|aQQ→aQ|bD|bE→aB|bFF→bD|aE|b1、构由于不可到达,去除E、F相关的多余产⽣式

2、由新的G[S]构造NFA如下

5、使⽤分割法化简以上DFAG:

5.1令G={(0,1,3,4,6),(2,5)}//分别为⾮终态和终态集

5.2由{0,1,3,4,6}a={1,3},{0,1,3,4,6}b={3,2,5,6,4}

将{0,1,3,4,6}划分为{0,4,6}{1,3},得G={(0,4,6),(1,3),(2,5)}

5.3由{0,4,6}b={3,6,4},将之划分为{0},{4,6},得G={(0),(4,6),(1,3),(2,5)}

5.4观察后,G中状态不可再分,为最⼩化DFA。

6、分别⽤0,4,1,2代表各状态,DFA状态转换图如下:

造相应的最⼩的DFA

第5章⾃顶向下的语法分析

重点内容:LL(1)⽂法

a、去除左递归

b、LL(1)⽂法的判定(first、follow、select集)

c、预测分析表

d、使⽤栈和预测分析表对输⼊串的分析

题⽬1:课件例题:消除左递归+判定+分析

算术表达式⽂法G

E→E+T│T

T→T*F│F

F→(E)│I

d、分析输⼊串i+i*i#

(1)消除G的左递归得到⽂法G‘

E→TE

E→+TE│ε

T→FT

T→*FT│ε

F→(E)│i

(2)求出每个产⽣式的select集,G’是LL(1)⽂法

SELECT(E→TE)={(,i}SELECT(E→+TE)={+}SELECT(E→ε)={),#}SELECT(T→FT)={(,i}SELECT(T→*FT)={*

}SELECT(T→ε)={+,),#}SELECT(F→(E))={(}SELECT(F→i)={i}

(3)依照选择集合把产⽣式填⼊分析表

注:表中空⽩处为出错

题⽬2:作业、习题5.1:消除左递归+判定+分析

G[S]:S-a|^|(T)T-T,S|S

d、分析输⼊串(a,a)#

⽂法G[S]:S-a|^|(T),T-T,S|S

(1)给出对(a,(a,a))的最左推导

(2)改写⽂法,去除左递归

(3)判断新⽂法是否LL1⽂法,如是,给出其预测分析表

(4)给出输⼊串(a,a)#的分析过程,判断其是否⽂法G的句⼦。答:(1)对(a,(a,a))的最左推导为:

S=(T)

=(T,S)

=(S,S)

=(a,S)

=(a,(T))

=(a,(T,S))

=(a,(S,S))

=(a,(a,S))

=(a,(a,a))

(2)改写⽂法为:

FIRST(→,SN)={,}

FIRST(→ε)={ε}

FOLLOW(N)={)}

由于SELECT(N→,SN)∩SELECT(N→ε)={,}∩{)}=?

所以⽂法是LL(1)的。

(3)预测分析表:

可见输⼊串(a,a)#是⽂法的句⼦。

题⽬3:复习、书本5.6例1:判定+分析

G[S]:S→aH,H→aMd|d,M→Ab|ε,A→aM|ed、分析输⼊串aaabd#

(1)判断G[S]是否为LL(1)⽂法;若是,构造其预测

文档评论(0)

. + 关注
官方认证
文档贡献者

专注于职业教育考试,学历提升。

版权声明书
用户编号:8032132030000054
认证主体社旗县清显文具店
IP属地中国
统一社会信用代码/组织机构代码
92411327MA45REK87Q

1亿VIP精品文档

相关文档