第8章语法制导翻译和中间代码生成 (109页).pptVIP

  • 5
  • 0
  • 约1.46万字
  • 约 109页
  • 2018-05-15 发布于河北
  • 举报

第8章语法制导翻译和中间代码生成 (109页).ppt

第8章语法制导翻译和中间代码生成 (109页)

第8章 语法制导翻译和中间代码生成 编译程序的任务是把源程序翻译成语义上等同的目标程序,因此在进行了语法的正确性分析之后就必须进行语义处理。 编译中的语义处理包括两个方面的功能:审查每个语法结构的静态语义,即验证符合语法结构的程序是否真正有意义;在静态语义正确的情况下,生成中间代码或实际的目标代码。 中间代码,又称为中间语言,是一种介于源程序和机器语言的一种表示形式。 8.1 属性文法 属性指的是某个符号的语义信息,通常一个符号的语义信息可能有多个,其具体表现形式如:数、字符、字符串、类型、存储空间等。同变量一样,属性可以进行计算和传递。 属性文法包括:上下文无关文法和一系列语义规则。这些语义规则附在文法的每个产生式上。从形式上看,属性文法是一个三元式:A=(G,V,F), G为一个上下文无关文法,V为一个属性的有穷集,F为属性的断言和谓词的有穷集。每个属性与文法的某个非终结符或终结符相联。每个断言与文法的某产生式相联。 例:有文法G为: E→T1 +T2|T1 or T2 T→num|true|false 对于输入串3+4的静态语义审查的语法树如下: 属性文法记号常使用N.t的形式,表示与非终结符N相联的属性t。例中与T相联的属性t只能是int、bool,而与非终结符E的产生式相联的断言指明:两个非终结符T的属性必须相同。通常,类型检查的属性文法如下: E→T1 + T2{T1

文档评论(0)

1亿VIP精品文档

相关文档