[理学]编译第7章.pptVIP

  • 1
  • 0
  • 约8.42千字
  • 约 53页
  • 2018-03-01 发布于浙江
  • 举报
[理学]编译第7章

语义处理 静态语义分析通常包括 ① 类型检查。验证程序中执行的每个操作是否遵守语言的类型系统的过程.编译程序必须报告不符合类型系统的信息。 ② 控制流检查。控制流语句必须使控制转移到合法的地方。例如,在C语言中break语句使控制跳离包括该语句的最小while、for或switch语句。如果不存在包括它的这样的语句,则就报错。 ③ 一致性检查。在很多场合要求对象只能被定义一次。例如Pascal语言规定同一标识符在一个分程序中只能被说明一次,同一case语句的标号不能相同,枚举类型的元素不能重复出现等等。 ④ 相关名字检查。有时,同一名字必须出现两次或多次。例如,Ada 语言程序中,循环或程序块可以有一个名字,出现在这些结构的开头和结尾,编译程序必须检查这两个地方用的名字是相同的。 ⑤ 名字的作用域分析 语义处理方法 对应每一个产生式编制一个语义子程序,当一个产生式获得匹配时,调用相应的语义子程序实现语义检查与翻译。 在产生式的右部的适当位置,插入相应的语义动作,按照分析的进程,执行遇到的语义动作。 语义——可以看成是相应文法符号的属性 7.1 属性(Attribute)文法(1) 虽然形式语义学(如指称语义学、公理语义学、操作语义学等)的研究已取得了许多重大的进展,但目前在实际应用中比较流行的语义描述和语义处理的方法主要还是属性文法和语法制导翻译方法. 属性(Att

文档评论(0)

1亿VIP精品文档

相关文档