编译原理第11章-语义分析与中间代码生成.pptx

编译原理第11章-语义分析与中间代码生成.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理第11章-语义分析与中间代码生成

; 语义分析和中间代码生成在编译程序中的 逻辑位置; 语义分析和中间代码生成的重要数据结构; 语义分析; 与语义分析相关的工作; 静态语义检查; 类型检查程序(type checker)负责类型检查 验证语言结构是否匹配上下文所期望的类型 为相关阶段搜集及建立必要的类型信息 实现某个类型系统(type system) 静态类型检查 编译期间进行的类型检查 动态类型检查 目标程序运行期间进行的类型检查; 以下是定义某个简单语言的上下文无关文法 (将用于本讲的设计示例)G[P] :; 类型表达式(type expressions) 由基本类型,类型名字,类型变量,及类型构造子 (type constructor)归纳定义的表达式 类型系统(type systems) 将类型表达式赋给程序各个部分的规则集合; 类型表达式 分四类定义 基本数据类型表达式,积类型表达式,过程类型表达式, 专用类型表达式 基本数据类型表达式 纯量类型表达式:bool, int, real 有界数组类型表达式:array(I,T) T ? { bool, int, real };I 代表一个整数区间,如 1..10 指针数据类型表达式:pointer(T) T ? { bool, int, real }; 积类型表达式 T1, T2, …, Tn T1, T2, …, Tn 为上述数据类型表达式;若n=0,则表示为 过程类型表达式 fun(T) T 是上述积类型表达式 专用类型表达式 type_error 专用于有类型错误的程序单元 ok 专用于没有类型错误的程序单元 ; 语法制导的方法 将类型表达式作为属性值赋给程序各个部分 设计恰当的翻译模式 可实现相应语言的一个类型系统; 处理声明的翻译模式; 处理表达式的翻译模式;; 处理语句、过程声明及程序的翻译模式;语义分析; 增加处理:break 只能在某个循环语句内部;语义分析; 静态作用域 通过符号表实现 (参见第七讲) 动态作用域 通过运行时活动记录实现 (参见下一讲);中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代???生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;中间代码生成;课后作业;Thank You

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档