编译原理第三版课后答案.doc

上传人:h**** 文档编号:162714 上传时间:2018-07-12 格式:DOC 页数:27 大小:922KB
下载 相关 举报
编译原理第三版课后答案.doc_第1页
第1页 / 共27页
编译原理第三版课后答案.doc_第2页
第2页 / 共27页
编译原理第三版课后答案.doc_第3页
第3页 / 共27页
编译原理第三版课后答案.doc_第4页
第4页 / 共27页
编译原理第三版课后答案.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、 编译 原理 课后题答案 第二章 P36-6 (1) LG( )1 是 09 组成的数字串 (2) 最左推导 : N ND N D D N D D D D D D D DDD DD DN ND DD DN ND N D D DDD DD D 0 01 0 1 2 0 1 2 73 345 56 5 6 8 最右推导 : N ND N ND N ND N DN ND N DN ND N ND N D 7 7 27 27 127 127 0 1 2 74 4 348 8 68 68 568 P36-7 G(S) ON OD NS O AOA AD N1 3 5 7 92 4 6 80| | | |

2、 | | | P36-8 文法: E T E T E TT F T F T FF E i | | * | /( )|最左推导 : E E T T T F T i T i T F i F F i i F i i iE T T F F F i F i E i E T i T T i F Ti i T i i F i i i * * * * * * * ( ) * ( ) * ( ) * ( )* ( ) * ( ) * ( ) 最右推导 : E E T E T F E T i E F i E i i T i i F i i i i iE T F T F F F E F E T F E F F E

3、iF T i F F i F i i i i i * * * * * * * * * ( ) * ( ) * ( ) * ( )* ( ) * ( ) * ( ) * ( ) 语法树: /* EE FTE +TFFT+iiiEE FTE -TFFT-iiiEEFT+TFFTii i*i+i+i i-i-i i+i*i*/ P36-9 句子 iiiei 有两个语法树: S iS e S iS e i ii S e i ii ie iS iS ii S e S ii S e i ii ie i P36-10 /* ) (|)( |ST TTSS */ P36-11 /* L1: |cCCabaAb

4、AACS L2: bcbBcBaAAABS| L3: |aBbBaAbAABS L4: ABBAABAS|01|10| */ 第三章习题参考答案 P64 7 (1) 101 101( | )* 0 1 1 0 1 1 确定化: 0 1 X 1,2,3 1,2,3 2,3 2,3,4 2,3 2,3 2,3,4 2,3,4 2,3,5 2,3,4 2,3,5 2,3 2,3,4,Y 2,3,4,Y 2,3,5 2,3,4, 0 1 0 0 0 1 1 0 X 1 2 3 4 Y 5 X Y 0 1 2 3 0 1 0 1 1 1 最小化: , , , , , , , , , , , , , ,

5、, , , , , , , , , , , , , , , , , , , , , , , , , , , , ,0 1 2 3 4 5 60 1 2 3 4 5 1 3 5 0 1 2 3 4 5 1 2 4 60 1 2 3 4 5 60 1 2 3 4 1 3 50 1 2 3 4 5 60 1 2 3 10 100 3 0 1 2 3 1 2 40 1 2 3 4 5 60 1 1 0 1 1 22 3 3 2 3 40 1 2 3 4 5 610 10 1 , , , , , , , , , , , , , , , , , , , , , 0 1 0 0 1 0 0 1 0 1 1

6、1 P64 8 (1) 01)0|1( * (2) )5|0(|)5|0()9|8|7|6|5|4|3|2|1|0)(9|8|7|6|5|4|3|2|1( * (3) * )110|0(01|)110|0(10 P64 12 (a) a a,b a 6 5 4 5 0 1 2 4 3 0 1 确定化: a b 0 0,1 1 0,1 0,1 1 1 0 给状态编号: a b 0 1 2 1 1 2 2 0 3 3 3 3 a a a b b b b a 最小化: , , , , , , , , , , , 0 1 2 30 1 1 0 1 22 3 0 3 2 3 30 1 2 3a ba b

7、 a a b b a b (b) b b a a b a 0 1 2 3 0 1 2 0 2 3 a b b a a a 已经确定化了 ,进行最小化 最小化: , , , , , 0 1 2 3 4 50 1 1 0 1 2 42 3 4 5 1 3 0 5 2 3 4 5 2 3 4 52 4 1 0 2 4 3 53 5 3 5 3 5 2 40 1 2 4 3 50 1 1 0 1 2 42 4 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , a ba ba ba ba ba , , , , , , , 1

8、0 2 4 3 53 5 3 5 3 5 2 4ba b b b a a b a P64 14 (1) 0 1 0 (2): ( | )*010 0 1 1 4 5 0 1 2 0 1 Y X Y X 2 1 0 确定化: 0 1 X,1,Y 1,Y 2 1,Y 1,Y 2 2 1,Y 给状态编号: 0 1 0 1 2 1 1 2 2 1 3 3 3 3 0 0 1 0 1 1 1 0 最小化: , , , , , , , , , , , 0 1 2 30 1 1 0 1 22 3 1 3 2 3 30 1 2 30 10 1 0 1 1 1 0 0 第四章 P81 1 (1) 按照 T,S

9、的顺序消除左递归 |,)(|)(TSTTSTTaSSG递归子程序: 0 2 1 3 0 1 3 procedure S; begin if sym=a or sym= then abvance else if sym=( then begin advance;T; if sym=) then advance; else error; end else error end; procedure T; begin S; T end; procedure T ; begin if sym=, then begin advance; S; T end end; 其中 : sym:是输入串指针 IP 所

10、指的符号 advance:是把 IP 调至下一个输入符号 error:是出错诊察程序 (2) FIRST(S)=a,( FIRST(T)=a,( FIRST( T )=, FOLLOW(S)=),# FOLLOW(T)=) FOLLOW( T )=) 预测分析表 a ( ) , # S S a S S T( ) T T ST T ST T ST T T T ST, 是 LL(1)文法 P81 2 文法: |)(|*|baEPFFFPFTTTFTEEETE(1) FIRST(E)=(,a,b, FIRST(E)=+, FIRST(T)=(,a,b, FIRST(T)=(,a,b, FIRST(F

11、)=(,a,b, FIRST(F)=*, FIRST(P)=(,a,b, FOLLOW(E)=#,) FOLLOW(E)=#,) FOLLOW(T)=+,),# FOLLOW(T)=+,),# FOLLOW(F)=(,a,b,+,),# FOLLOW(F)=(,a,b,+,),# FOLLOW(P)=*,(,a,b,+,),# (2) 考虑下列产生式 : E ET TF FP E a b|* |( )| | |FIRST(+E) FIRST( )=+ = FIRST(+E) FOLLOW(E)=+ #,)= FIRST(T) FIRST( )=(,a,b, = FIRST(T) FOLLOW(

12、T)=(,a,b, +,),#= FIRST(*F) FIRST( )=* = FIRST(*F) FOLLOW(F)=* (,a,b,+,),#= FIRST(E) FIRST(a) FIRST(b) FIRST()= 所以 ,该文法式 LL(1)文法 . (3) + * ( ) a b # E E TE E TE E TE E TE E E E E E T T FT T FT T FT T FT T T T T T T T T T T T T F F PF F PF F PF F PF F F F F* F F F F F F P P E( ) P a P b P (4) procedur

13、e E; begin if sym=( or sym=a or sym=b or sym= then begin T; E end else error end procedure E; begin if sym=+ then begin advance; E end else if sym# then error end procedure T; begin if sym=( or sym=a or sym=b or sym= then begin F; T end else error end procedure T; begin if sym=( or sym=a or sym=b or sym= then T else if sym=* then error end procedure F; begin if sym=( or sym=a or sym=b or sym= then begin P; F end else error end procedure F; begin if sym=* then begin advance; F end end procedure P; begin if sym=a or sym=b or sym= then advance else if sym=( then

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 复习参考

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。