属性文法课堂练习课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《属性文法课堂练习课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 属性 文法 课堂 练习 课件
- 资源描述:
-
1、属性文法课堂练习题2、写出下面文法的属性文法:Number Digit Number1Number DigitDigit 0|1|2|3|4|5|6|7|8|9|1、写出下面文法的属性文法:Number Number1 Digit Number Digit Digit 0|1|2|3|4|5|6|7|8|9|1、写出下面文法的属性文法:Number Number1 Digit Number DigitDigit 0|1|2|3|4|5|6|7|8|9|文法规则语义规则Number Number1 Digit Number.val=Number1.val*10+Digit.valNumber D
2、igitNumber.val=Digit.valDigit 0Digit.val=0Digit 9Digit.val=92、写出下面文法的属性文法:Number Digit Number1Number DigitDigit 0|1|2|3|4|5|6|7|8|9|文法规则语义规则Number Digit Number1Number.mul=Number 1.mul*10Number.val=Digit.val*Number.mul+Number 1.valNumber DigitNumber.mul=1Number.val=Digit.valDigit 0Digit.val=0Digit 9D
3、igit.val=93、给出下列文法中S产生的二进制数值的语义规则,并用堆栈说明该语义的实现过程,例如输入1101.011时,S.val=13.375:S-L.L|LL-L B|BB-0|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.val L.length=L.length+1 L-L B S.val:=L.val S-L S.val:=L1.val+L2.val/2 L2.length S-L1.L2语义规则产生式13_._1_1L.L1L.Val:=L.val*2+B.val(L.engt
4、h=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.0113_0L01.011L.val:=L.val*2+B.val(L.length=2)3L01.011B.val:
5、=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/2L2.length13.375SL.Val:=L.val*2+B.val(L.ength=3)13_._3L.LB.Val:=113_._1_1L.LB13_._1_1L.L1使用的语义规则使用的语义规则valstate输入输入1101.011 的分析树的分析树1B.val=1L1.val=11B.Val=1L1.va
6、l=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 num1 digit|digitsnum digit snum1|digitdigit 0|1|2|3|4|5|6|7|8|9(注意:整数、小数分别用左、右递归文法)文法规则语义规则dnum num.snumdnum.val=num.val+snum.valnum num1 digitnum.val=num1.val*10+digit.valnu
7、m digitnum.val=digit.valsnum digit snum1snum.val=(snum1.val+digit.val)/10snum digitsnum.val=digit.val/10digit 0digit.val=0digit 9digit.val=95、下面文法给出是Pascal说明的文法,写出变量类型的一个属性文法。decl -var-list:type var-list-var-list,id|idtype-int|float 文法规则语义规则declvar-list:typevar-list.dtype=type.dtypevar-list1var-list
8、2,idvar-listidtypeintegertype.dtype=integertyperealtype.dtype=realvar-list2.in=var-list1.dtypevar-list2.dtype=var-list2.inid.in=var-list1.dtypeid.in=var-list.dtypevar-list2.dtype=var-list1.dtypeid.dtype=var-list1.dtypeid.dtype=var-list.dtype6、对于输入的表达式、对于输入的表达式(4*7+1)*2,根据下表的语法制导定义建立一棵带注释,根据下表的语法制导定义
展开阅读全文