第8讲语义算法浅析.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8 语义分析 ;1 属性和属性文法 属性:语言实体的特性,如变量的类型,表达式的值等 属性文法:用属性文法表示语义,也称作语法制导语义, 即语法规则中的语义。 设有语法(文法)规则X0?X1X2…Xn 每个文法符号有属性Xi.aj 存在语义规则: Xi.aj = fij(X0.a1,…,X0.ak, …, X1.al, …, Xn.a1, …Xn.ak) 对语法规则有相应的语义规则(属性文法表示), ;例 1 无符号整数文法 Number ? number digit | digit Digit ? 0|1|2|3|4|5|6|7|8|9 语义属性: 数的值 (计作 val), 相应的属性文法如下:; 对于数345用分析树显示属性计算如下:;例 2 考虑如下算术表达式文法: Exp ? exp + term | exp-term | term Term ? term*factor | factor Factor ? (exp)| number 属性文法如下:;表达式(34-3)*42的属性计算;例 3 变量声明文法: Decl ? type var-list Type?int | float Var-list?id, var-list |id 属性为数据类型(计作dtype );串 float x,y 的属性计算:;例 4 数可以用八进制或十进制表示文法 Based-num ? num basechar Basechar ? o|d Num ? num digit | digit Digit ? 0|1|2|3|4|5|6|7|8|9 属性为 base 和 val;;;2 属性计算算法;例 求表达式3*(x+2)的数据类型;合成属性计算的后序遍历算法: Procedure PostEval (T :treenode) Begin For each child C of T do PostEval(C); 计算T的所有合成属性; End (2) 继承属性 一个属性如果不是合成的,则称作继承属性 如例3文法 ;文法: decl ? type var-list type?int | float var-list?id, var-list |id 属性为数据类型(计作dtype );分析树 属性:dtype decl type var-list int id , var-list id , var-list id ;遍历算法:;语法树 ;3 符号表 声明变量时,把变量填入符号表(插入) 使用变量时,检查符号表确定此变量是否已声明(查找) 不再使用变量时,把变量从符号表中删除 通常采用Hash表做符号表 ;哈希函数: ;设 α为2 size为5 变量i 其哈希函数值 h=105 mod 5=0 变量j 其哈希函数值 h=106 mod 5=1 变量size 其哈希函数值 h=(24-1*115+24-2*105+24-3*122+24-4*101) mod 5=(8*115+4*105+2*122+1*101)mod 5=1685 mod 5=0 变量temp h =2 变量i1 h =4 变量i2 h =0 变量j2 h =2;符号表结构定义 Typedef struct bucket {char * name; char * dtype; struct bucket * next; } bucket bucket * hashtable[size];4 类型推断和类型检查;P254 表6-10 类型推断和检查 ;操作系统由哪几部分组成,各部分的主要作用是什么? 简述进程控制块的内容与作用? 操作系统中进程的并发执行是如何提高资源利用率? 举例说明短作业优先调度算法不利于长作业? 当5个哲学家共享桌上的6只筷子时,就一定不会死锁. 为什么每个哲学家同时拿左右2根筷子,可防止发生死锁 在内存管理中为什么连续分配方式访问速度快,而不连续分配方式

文档评论(0)

***** + 关注
实名认证
文档贡献者

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档