作业5_黄孝喜班(语法制导翻译)答案.doc

作业5_黄孝喜班(语法制导翻译)答案.doc

ID:56769244

大小:33.50 KB

页数:2页

时间:2020-07-08

作业5_黄孝喜班(语法制导翻译)答案.doc_第1页
作业5_黄孝喜班(语法制导翻译)答案.doc_第2页
资源描述:

《作业5_黄孝喜班(语法制导翻译)答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、作业5–语法制导翻译1.已知程序的文法G[P]如下:P®DD®D;D

2、id:T

3、procid;D;S(1)请写一个语法制导定义,输出程序中一共声明了多少个id。产生式语义规则P®DPrint(D.c)D®D1;D2D.c=D1.c+D2.cD®id:TD.c=1D®procid;D1;SD.c=D1.c+1(2)请写一个翻译模式,输出程序中每变量id的嵌套深度。P®{D.d=1}DD®{D1.d=D.d}D1;{D2.d=D.d}D2D®id:T{print(D.d)}D®procid;{D1.d=D.d+1}D1;S2.有表示二进制无符号数的文法G[S]:S→L.L

4、LL→LB

5、BB→0

6、

7、1请构造一个翻译模式,将二进制表示的数转换为十进制数。S’→S{print(S.val)}S→L1.L2{S.val=L1.val+L2.val/L2.w}S→L{S.val=L.val}L→L1B{L.val=L1.val*2+B.val;L.w=L1.w*2}L→B{L.val=B.val;L.w=2}B→0{B.val=0}B→1{B.val=1}3.已知有文法G[E]:E→E+T

8、TT→num.num

9、num该文法对整型常数和实型常数进行加法运算,当两个整型数相加时,结果仍为整型数,否则结果为实型数。(1)试给出确定每个子表达式结果类型的语法制导定义。产生式语义规则E→E1+TIF(

10、E1.type==int)&&(T.type==int)THENE.type=int;ELSEE.type=real;E→TE.type=T.typeT→num.numT.type=realT→numT.type=int(2)扩充上面的语法制导定义,使之把表达式翻译成后缀形式,同时也能确定结果的类型。注意使用一元运算符inttoreal把整型数转换为实型数,int+和real+分别表示整型数加法运算和实型数加法运算。产生式语义规则E→E1+TIF(E1.type==int)&&(T.type==int)THENE.type=int;E.code=E1.code

11、

12、T.code

13、

14、“int+”

15、ELSEIF(E1.type==real)&&(T.type==int)THENE.type=real;E.code=E1.code

16、

17、T.code

18、

19、inttoreal

20、

21、“real+”ELSEIF(E1.type==int)&&(T.type==real)THENE.type=real;E.code=E1.code

22、

23、inttoreal

24、

25、T.code

26、

27、“real+”ELSEE.type=real;E.code=E1.code

28、

29、T.code

30、

31、“real+”E→TE.type=T.typeE.code=T.codeT→num.numT.type=realT.code=num.numT

32、→numT.type=intT.code=num

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。