属性文法课堂练习

属性文法课堂练习

ID:42000449

大小:458.01 KB

页数:22页

时间:2019-09-06

属性文法课堂练习_第1页
属性文法课堂练习_第2页
属性文法课堂练习_第3页
属性文法课堂练习_第4页
属性文法课堂练习_第5页
资源描述:

《属性文法课堂练习》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、属性文法课堂练习题2、写出下面文法的属性文法:Number→DigitNumber1Number→DigitDigit→0

2、1

3、2

4、3

5、4

6、5

7、6

8、7

9、8

10、9

11、1、写出下面文法的属性文法:Number→Number1DigitNumber→DigitDigit→0

12、1

13、2

14、3

15、4

16、5

17、6

18、7

19、8

20、9

21、1、写出下面文法的属性文法:Number→Number1DigitNumber→DigitDigit→0

22、1

23、2

24、3

25、4

26、5

27、6

28、7

29、8

30、9

31、文法规则语义规则Number→Number1DigitNumber.val=Number1.val*10+Digit.valNu

32、mber→DigitNumber.val=Digit.valDigit→0Digit.val=0…………Digit→9Digit.val=92、写出下面文法的属性文法:Number→DigitNumber1Number→DigitDigit→0

33、1

34、2

35、3

36、4

37、5

38、6

39、7

40、8

41、9

42、文法规则语义规则Number→DigitNumber1Number.mul=Number1.mul*10Number.val=Digit.val*Number.mul+Number1.valNumber→DigitNumber.mul=1Number.val=Digit.valDigit→

43、0Digit.val=0…………Digit→9Digit.val=93、给出下列文法中S产生的二进制数值的语义规则,并用堆栈说明该语义的实现过程,例如输入1101.011时,S.val=13.375:S->L.L

44、LL->LB

45、BB->0

46、1{B.Val:=0}B->0{B.Val:=1}B->1{L.val:=B.val;L.length=1}L->B{L.val:=L.val*2+B.valL.length=L.length+1}L->LB{S.val:=L.val}S->L{S.val:=L1.val+L2.val/2^L2.length}S->L1.L2语义

47、规则产生式13_._1_1L.L1L.Val:=L.val*2+B.val(L.ength=2)13_._1L.L1B.Val:=113_._0_1L.LB113_._0_1L.L11L.Val:=B.val(L.length=1)13_._0L.L11B.Val:=113_._0L.B1113_._0L.01113_.L.011L.Val:=L.val*2+B.val(L.length=4)13L.011B.Val:=16_1LB.0116_1L1.011L.val:=L.val*2+B.val(L.length=3)6L1.011B.val:=03_0LB1.0

48、113_0L01.011L.val:=L.val*2+B.val(L.length=2)3L01.011B.val:=11_1LB01.0111_1L101.011L.val:=B.val(L.length=1)1L101.011B.val:=11B101.01111101.011--1101.011使用的语义规则valstate输入S.Val:=L1.val+L2.val/2^L2.length13.375SL.Val:=L.val*2+B.val(L.ength=3)13_._3L.LB.Val:=113_._1_1L.LB13_._1_1L.L1使用的语义规则

49、valstate输入1101.011的分析树1B.val=1L1.val=11B.Val=1L1.val=30B.Val=0L1.val=60B.Val=0L2.val=01B.Val=1L2.val=11B.Val=1L2.val=3.S=13.3751B.Val=1L1.val=134、十进制浮点数的文法修改如下:dnum→num.snumnum→num1digit

50、digitsnum→digitsnum1

51、digitdigit→0

52、1

53、2

54、3

55、4

56、5

57、6

58、7

59、8

60、9(注意:整数、小数分别用左、右递归文法)文法规则语义规则dnum→num.snumdnum.va

61、l=num.val+snum.valnum→num1digitnum.val=num1.val*10+digit.valnum→digitnum.val=digit.valsnum→digitsnum1snum.val=(snum1.val+digit.val)/10snum→digitsnum.val=digit.val/10digit→0digit.val=0…………digit→9digit.val=95、下面文法给出是Pascal说明的文法,写出变量类型的一个属性文法。decl->var-list:typevar-list->var-list,id

62、idt

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

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

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