第5讲中间代码翻译.pptVIP

  • 3
  • 0
  • 约2.37万字
  • 约 70页
  • 2016-12-29 发布于北京
  • 举报
CompilerPrinciples 第五讲 语义分析和中间代码产生 语义分析概述 中间语言 几种常用语句的翻译 符号表 静态语义检查和中间代码产生在编译程序中的位置如图所示: ◇ 虽然源程序可以直接翻译为目标语言代码,但是通常编译程序还是采用了独立于机器的、复杂性介于源语言与机器语言之间的中间语言。这样做的好处是: (1)便于进行与机器无关的代码优化; (2)使编译程序改变目标机更容易; (3)使编译程序的结构在逻辑上更为简单明确,以中间语言为界面,编译前端和后端的接口更清晰。 §1. 语义分析概述 一、语义分析的任务 审查每一个语法结构的静态语义,即验证语法正确的结构是否有意义。 如:赋值语句:x:=x+y,左边变量类型与右边变量类型是否一致。 在语义正确的基础上生成一种中间代码或目标代码。 二、语义分析的范围 1.确定类型:确定标识符所关联的数据类型。 2.类型检查:按语言的类型规则,检查运算的合法性与运算分量类型的一致性,必要时作类型转换。 3.识别含义:根据语言的语义定义(形式或非形式),识别程序中各构造成分组合到一起的含义,并作相应的语义处理(生成中间代码或目标代码)。 4.控制流检查:控制流语句必须转移到合法的地方。 如C中,break语句规定跳出最内层的循环或switch语句。 5.一致性检查:在很多场合

文档评论(0)

1亿VIP精品文档

相关文档