文档详情

《编译原理》(陈火旺版)课后作业参考答案ch6-10.pdf

发布:2024-01-08约1.97万字共14页下载文档
文本预览下载声明

第6章属性文法和语法制导翻译

7.下列文法由开始符号S产生一个二进制数,令综合属性val给出该数的值:

S→∣L

L→LB∣B

试设计求的属性文法,其中,已知B的综合属性c,给出由B产生的二进位的结果值。例如,

输入时,=,其中第一个二进位的值是4,最后一个二进位的值是。

【答案】

产生式语义规则

S→L.L{:=+*2}

12

S→L{:=}

{:=*2+;

L→LB

1

L.length:=+1}

{:=;

L→B

L.length:=1}

B→0{:=0}

B→1{:=1}

11.设下列文法生成变量的类型说明:

L→idL

L→,idL∣:T

(1)构造一下翻译模式,把每个标识符的类型存入符号表;参考例。

【答案】

产生式语义规则

L→idL{:=+*2}

1

L→,idL{:=}

1

{:=*2+;

L→:T

L.length:=+1}

{:=;

T→integer

L.length:=1}

T→real{:=0}

第7章语义分析和中间代码产生

1.给出下面表达式的逆波兰表示(后缀式):

【答案】

原式后缀式

(1)a*(-b+c)ab-c+*

(2)a+b*(c+d/e)abcde/+*+

(3)–a+b*(-c+d)a-bc-d+*+

(4)notAornot(CornotD)AnotCDnotornotor

(5)(AandB)or(notCorD)ABandCnotDoror

(6)(AorB)and(CornotDandABorCDnotEandorand

E)

(7)if(x+y)*z=0

显示全部
相似文档