1 / 60
文档名称:

静态语义分析和中间代码生成PPT课件.pptx

格式:pptx   大小:346KB   页数:60页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

静态语义分析和中间代码生成PPT课件.pptx

上传人:wz_198613 2021/7/3 文件大小:346 KB

下载得到文件列表

静态语义分析和中间代码生成PPT课件.pptx

相关文档

文档介绍

文档介绍:第1页/共60页
静态语义分析和中间代码生成
语法制导翻译方法
使用属性文法/翻译模式为描述工具定义程序设计语言的语义及代码生成方法。
语义分析
在处理程序的声明部分时构造标识符的符号表
在处理程序的语句部分时完成静态语义检查

第2页/共60页
静态语义分析和中间代码生成
符号表
静态语义分析
中间代码生成
多遍的方法
第3页/共60页
符号表
符号表及其作用
符号表(Symbol Table)
符号表是存放标识符信息的一种表,其中的信息是标识符的属性(语义)。
如:种类,类型,偏移地址,占用空间等
第4页/共60页
符号表
符号表的作用
符号表是连接声明与引用的桥梁。一个名字在声明时,相关信息被填写进符号表,而在引用时,根据符号表中的信息进行语义检查,进而生成中间代码。它的作用主要有:
辅助语义的正确性检查
辅助代码生成
第5页/共60页
符号表的设计
如何有效记录各类符号的属性,以便在编译的各个阶段对符号表进行快速、有效的查找、插入、修改、删除等操作,是符号表设计的基本目标。
符号表的组成
表项分两部分,其中前者是标识符的名字,而后者是属性部分(不同种类的标识符属性不同)。
符号表的组织方式和查找方法
符号表的组织方式可以是数组也可以是链表等等
查找算法可以是顺序查表法、平分查表法、散列查表法等
合理的组织和查找,将使得符号表的操作更高效
第6页/共60页
过程的说明部分:
CONST A=35,B=49;
VAR C,D,E;
PROCEDURE P;
VAR G
符号表中的信息
变量相对本过程基地址的偏移量
第7页/共60页
符号表
符号表的生存期
在编译过程中,每当遇到标识符时,就要查填符号表:
若是新的标识符时,就向符号表中填入一个新的表项;
否则,根据情况向符号表中的已有表项增填信息(如填入存储地址)或者查获信息(如进行语义检查等)
符号表的信息将在词法分析、语法分析的过程中陆续填入,将用于语义检查、中间代码生成以及目标代码生成等不同的阶段。
第8页/共60页
与语义分析相关的工作
静态语义分析
静态语义检查
编译期间所进行的语义检查
动态语义检查
所生成的代码在运行期间进行的语义检查
收集语义信息
为语义检查收集程序的语义信息
为代码生成等后续阶段收集程序的语义信息
第9页/共60页
代码生成前程序合法性检查的最后阶段
控制流检查
控制流语句必须使控制转移到合法的地方(如 跳转语句要有合法的跳转目标,break 语句必须有合法的语句包围它)
唯一性检查
很多场合要求对 象只能被定义一次(如枚举类型的元素不能重复出现)
1 静态语义分析的主要任务
第10页/共60页