编译原理语法制导翻译和中间代码生成.pptVIP

  • 4
  • 0
  • 约1.32万字
  • 约 62页
  • 2017-02-04 发布于江苏
  • 举报

编译原理语法制导翻译和中间代码生成.ppt

第8章 语法制导翻译和中间代码生成 语言的语义和编译的语义处理工作 静态语义:语法规则的良形式条件 静态语义检查:审查静态语义 动态语义:程序单元执行的操作 动态语义处理:生成中间(目标)代码 8.1语义处理概述 静态语义审查 (1)类型检查。根据类型相容性要求,验证程序中执行的每个操作是否遵守语言的类型系统的过程,编译程序必须报告不符合类型系统的信息。 (2)控制流检查。控制流语句必须使控制转移到合法的地方。例如,在C语言中break语句使控制跳离包括该语句的最小while、for或switch语句。如果不存在包括它的这样的语句,则就报错。 (3)一致性检查。在很多场合要求对象只能被定义一次。例如Pascal语言规定同一标识符在一个分程序中只能被说明一次,同一case语句的标号不能相同,枚举类型的元素不能重复出现等等。 (4)上下文相关性检查。比如,变量名字必须先声明后引用;而有时,同一名字必须出现两次或多次,例如,Ada 语言程序中,循环或程序块可以有一个名字,出现在这些结构的开头和结尾,编译程序必须检查这两个地方用的名字是相同的。 (5)名字的作用域分析 解释执行动态语义 (计算)生成代码(中间代码或目标代码) 语义处理的描述 属性文法:描述语义规则。 语法制导翻译:在语法分析的同时,执行语义子程序: 检查静态语

文档评论(0)

1亿VIP精品文档

相关文档