第六章语义分析和中间代码生成.pptVIP

  • 19
  • 0
  • 约1.16万字
  • 约 80页
  • 2015-08-31 发布于重庆
  • 举报
第六章语义分析和中间代码生成.ppt

语义分析 通常包括: (1)类型检查。验证程序中执行的每个操作是否遵守语言的类型系统的过程.,编译程序必须报告不符合类型系统的信息。 (2)控制流检查。控制流语句必须使控制转移到合法的地方。例如,在C语言中break语句使控制跳离包括该语句的最小while、for或switch语句。如果不存在包括它的这样的语句,则就报错。 (3)一致性检查。在很多场合要求对象只能被定义一次。例如Pascal语言规定同一标识符在一个分程序中只能被说明一次,同一case语句的标号不能相同,枚举类型的元素不能重复出现等等。 (4)相关名字检查。有时,同一名字必须出现两次或多次。例如,Ada 语言程序中,循环或程序块可以有一个名字,出现在这些结构的开头和结尾,编译程序必须检查这两个地方用的名字是相同的。 (5) 名字的作用域分析 如何实现语义分析? 语法制导翻译中的方法和技术应用于语义分析中。 四元式? 100: if ab goto 103 101: T1=0 102: goto 104 103: T1=1 104: 104: if cd goto 107 105: T2=0 106: goto 108 107: T2=1 108: if ef goto 111 109: T3=0 110: goto 112 111: T3=1 112: T4=

文档评论(0)

1亿VIP精品文档

相关文档