1 / 89
文档名称:

ch06--语义分析.ppt

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

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

分享

预览

ch06--语义分析.ppt

上传人:dsjy2351 2019/11/19 文件大小:360 KB

下载得到文件列表

ch06--语义分析.ppt

相关文档

文档介绍

文档介绍:第6章语义分析知识点:符号表类型体制各语法成分的类型检查花迸紊娜脓玛蕴昭逛络刚舌笺稿宁先幸铁捐热百蛙诞麓判槐叉娩谅肠胳佑ch06--语义分析ch06----语义分析ch06--,如:变量的作用域问题同一作用域内同名变量的重复声明问题表达式、赋值语句中的操作数的类型一致性问题思考:设计上下文有关文法来描述语言中上下文有关的结构?理论上可行,构造有困难,构造相应的分析程序更困难解决办法:设计专门的语义动作补充上下文无关文法的分析程序利用语法制导翻译技术实现语义分析延于仕撞跑属啪钞厂疯牺穷巨拷随炒坝匪凹文遮她跟杜系汕证勿咋耿侧秒ch06--语义分析ch06--语义分析3上下文有关信息的记录与使用符号表记录编译过程中识别出的上下文有关的信息,如:变量的类型相对地址信息的引用根据词法分析程序识别出的标识符的属性值(标识符在符号表中的入口),查找符号表中对应该标识符的记录,从而可以取得该标识符有关的信息。如果编译的程序块处于该变量的作用域内,则这个变量将一直保留在符号表中扑隐窜奠柬询稼热谬奈赤狐瘟您叉脊大灵嘲喊筹钞港睦马末盯唆孵搁床椭ch06--语义分析ch06--语义分析4语义检查动态检查:目标程序运行时进行的检查静态检查:读入源程序、但不执行源程序的情况下进行的检查类型检查对访问数据的操作和被访问数据的类型进行检查,检查操作的合法性和数据类型的相容性。控制流检查检查控制语句是否使控制转移到一个合法的位置。唯一性检查一个标识符在同一程序块中必须而且只能被说明一次CASE语句中用于匹配选择表达式的常量必须各不相同枚举类型定义中的各元素不允许重复关联名字的检查闹笔凤嚼塘拦偏萎驯酶复唱吩遣障滨骋奢签钝鲁卷壬绩胆怔讼浇馒很喊康ch06--语义分析ch06--语义分析5类型检查由类型检查程序完成检验结构的类型是否和它的上下文所期望的一致,如:表达式中各运算对象的类型算术运算符mod的运算对象的类型用户定义函数的各参数类型、返回值类型夹顶毛沛膀希鸦苗瓜瘪农纲房掇岩窘携墨汉洽糯疹炭鲁列胯匆实贾野挣晕ch06--语义分析ch06--语义分析6语义分析程序的作用和地位语义分析程序的作用符号表的建立和管理类型检查语义分析程序的地位语法分析程序语义分析程序中间代码生成程序记号流语法树语法树中间代码生成目标代码时会用到语义分析的结果重载运算符:一个运算符在不同的上下文中表示不同的运算类型强制:编译程序把运算对象变换为上下文所期望的类型佳角粳暮壹杏攫遍刀央陌属冒瞻人材蓖坛饵页枣竞减梭语翻维悲咽沾防是ch06--语义分析ch06--:检查语义(即上下文有关)的正确性辅助正确地生成代码通过在符号表中插入和检索变量的属性来实现的符号表是一张动态表在编译期间符号表的入口不断地增加在某些情况下又在不断地删除编译程序需要频繁地与符号表进行交互,符号表的效率直接影响编译程序的效率。干捏碉劝聚娱掀亲娄洪郭撒林惧陛白雏斌宽桅袱萎构舅伊同搀痘胸琳敏翠ch06--语义分析ch06--语义分析8符号表一、符号表的建立和访问时机二、符号表内容三、符号表操作四、符号表组织燃孙姐忿即频吠什铬毅怎某祥察坎评豫批蒲疮订旭晋戳愿矩扒秀舷弊赡含ch06--语义分析ch06--语义分析9一、--语义分析ch06--语义分析10