- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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根筷子,可防止发生死锁
在内存管理中为什么连续分配方式访问速度快,而不连续分配方式
您可能关注的文档
最近下载
- 22J403-1 楼梯 栏杆 栏板(一) (3).pdf VIP
- 口腔科门诊护士接诊流程ppt新版【16页】.pptx VIP
- 课件:土壤有机质的测定.ppt VIP
- 2025年蜀道投资集团有限责任公司招聘笔试备考试题及答案解析.docx VIP
- 材料与试验协会 E 3-2001金相试样的制备方法(中文版).pdf VIP
- 设备台账标准格式.xls VIP
- 动火作业施工方案模板.docx
- 玩家国度ROG STRIX Z790-E GAMING WIFI 主板 ROG STRIX Z790-E GAMING WIFI 简体中文版使用手册.pdf
- 2025年蜀道投资集团有限责任公司招聘笔试备考题库及一套答案详解.docx
- 2025年辅警招考时事政治考题及答案.docx VIP
文档评论(0)