教学工作的资源分享

作业评论。

重电教务系统

重电教务系统

编程语言CH6。属性、语法、推导、翻译、舒明浩123、陈火王等2000年第三版2编辑。

根据表6.1

(P137。)显示的属性语法,

配置表达式(4*7 1)*2的注释语法树。

digitl exval=4 digitl exval=7 digitl exval=1 fval=4 TV al=4 fval=7 tval=28

* *

Eval=28 fval=1 tval=1 eval=29ln

()

f val=29

tval=29 fval=2 digitl exval=2 * tval=58 eval=58

CH.6 .练习问题1 (p164) 3

CH.6 .练习问题2 (p164)。)2 (1)。表达式

((a) (b))根据表6.4(P146)中显示的属性语法构建表达式的提取

就像语法树一样。Idto entry aid

e . NP TRT . nptr(e . nptr)id(e . nptr)t . nptr id

T.nptrE.nptr

(E.nptr )T.nptrT.nptr

To entry b

CH6。练习题3:图a (a a a(a a A))中的Dagdag在这里指属性从属度。

语法:EE TET

表达式T(E)Tid复合属性:E.valT.val的值E.valid (E.val)

Id

E.val

(E.val )T.valT.val

e . val t . valid e . val t . vale . valt . vale . vale . valt . validt . valid

Id E.val T.validT.val5

CH.6 .练习问题5(P164)。)。

5.以下语法通过对整数常数和实数常数应用加法运算符来创建表达式。两个整数相加,结果仍然是整数,否则结果是实数:

EE T | EE T | T Tnum . num | num \(1 1)提供了确定每个子表达式结果类型的属性语法。解释:复合属性E.typt,T.type表示e和t的结果类型,类型值分别为int和real,表示整数和实型。属性语法如下:6

CH.6 .练习问题5(P164)。

教育信息化促进教育公平研究

教育信息化促进教育公平研究

解读5。(1)提供属性语法(翻译模式),以确定每个子表达式的结果类型。

ee 1t { if e 1 . type=int and t . type=int then e . type :=int

Else E.type:=real} et { e . type :=t . type;} tnum . num { t . type :=real;} tnum { t . type :=int;}7CH.6 .练习题7(P164)。)。

7.下面的语法从起始符号S生成二进制数,让复合属性val给出该数的值,并设计得出S.val的属性语法。其中已知的B的复合属性C提供了B生成的二进制数的结果值。例如,输入101.101时,请输入S.val=5.625。第一个二进制值为4,最后一个二进制值为0.125。SL. L | L S可以有小数点的二进制字符串LLB | B L表示二进制字符串B0 | 1 B表示二进制位8

CH.6 .练习问题7(P164)。)。

解7:题意味着要把二进制字符串(可以包含小数点)翻译成等价的十进制值。S.val、L.val和B.c代表S、L和b的十进制值。整数部分的转换规则是从最高位到低位

最初,val:=最高位值;以后的val:=val*2后面的数字值。小数部分的转换规则是从最后一位到10位。

最初val:=最后一个值;之后val:=val/2下一位值。解法1结合自下而上的语法分析,只能使用综合属性重写语法。9

CH.6 .练习问题7(P164)。)。

解法1。属性语法,m是小数部分的二进制字符串:sl . m s . val :=l . val m . valsl s . val 3360=l . valll1b l

B0 B.c:=0B1 B.c:=1

M am1 m. val:=a. c m1。val/2ma m . val :=a . ca0a . c :=0a1a . c :

CH.6 .练习问题7(P164)。)。

解决方案1。二进制字符串101.101的语法树和自下而上的翻译过程,在合同中执行语义规则。S.v=5.625

高职高专是什么学历

高职高专是什么学历

M.v=0.625

l . v=2b . c=1a . c=0.5m . v=0.25 l . v=1b . c=0a . c=0m . v=0.5b . c=1a

1 111

CH.6 .练习问题7(P164)。)。

解决方案2。复合属性S.val、L.val、B.c表示S、L和b的十进制值;复合属性L.length计算二进制字符串的位数;使用L2.val/2L2.length获得小数部分的10;属性语法:

sl 1 . l 2s . val 3360=l 1 . vall 2 . val/2 l 2 . lengthsl s . val 3360=l . val

ll 1 b l . val :=l 1 . val * 2 b . c;l . length :=l 1 . length 1 lb l . val :=b . c;l . length 3360=1b0b . c :=0b1b . c :=112

CH.6 .练习问题7(P164)。)。

解法2。二进制字符串101.101的语法树和自下而上的翻译过程,在签约时执行语义规则。S.v=5.625(=5 5/8)

l . v=5;L.l=3。l . v=5;l . l=3 l . v=2;l . l=2 b . c=1 l . v=2;l . l=2 b . c=1 l . v=1;l . l=1 b . c=0 l . v=1;L.l=1 B.c=0B.c=1B.c=11

010

1 113

CH.6 .练习问题11 (P165)。)11 .设置以下语法创建变量的类型:描述:(1)构成了将每个标识符的类型存储在符号表中的翻译模式。参考案例6.2 (P138)。)语法的句子(例如,A、B、C : Integer解决方案(1))。翻译模式如下:

D id l {addtype (id.entry,l.type)} l ,id l 1 { l . type 3360=l 1 . type add type(id)l . type)}

S a

L L、SL S

(1)创建属性语法,并输出对括号数。例如,符号字符串(a,(a,a))输出2。(2)配置打印每个a重叠深度的翻译模式。例如,符号字符串((a),a)将打印2,1。15CH.6 .练习题(补充问题)

复合属性S.n,L.n计算成对括号的数量。属性语法如下:

s’sprint(s . n)s(l)s . n :=l . n 1sa s . n :=0 ll 1、s l.n :=

而且,

L.n=0,S.n=0aS.n=0L.n=0

(L.n=0 )S.n=1S.n=2

‘s’印刷(S. n)

CH.6 .练习题(补充问题)

解释(2)。继承属性S.d,L.d设置计数A的嵌套深度,并在移动到A节点时打印S.d值。翻译模式如下:' :S' {S.d :=0} SS

{L.d :=S.d 1 }L)

sa { print(s . d)} l{ l 1 . d :=l . d } l 1,{s.d :=l.d} sl {s

A {pt (s.d=1)} {s.d=1} s {l1.d=1} L1,{s.d=1} s ({l.d .)

A {pt(S.d=2)}符号字符串((a),a)的分析和翻译(见图:)

随机看看

NEW ARTICLE

标签

Tag