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

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

第八章 语法制导翻译和中间代码 考察重点 属性文法与语法制导翻译 中间代码:逆波兰式、三元式、四元式、抽象语法树的表示 常见语句的翻译( 布尔表达式,控制语句,循环,数组 ) 语义分析 语义分析的任务:在词法分析和语法分析的基础上,分析所写源程序的含义,在理解含义的基础上为生成相应的目标代码作好准备或直接生成目标代码。??? 1)静态语义检查 例:类型检查、运算、维数、越界 2)语义翻译(具体的动作) ??????例:语句的翻译(中间代码或目标代码生成) 语义分析方法:大多编译器采用语法制导翻译方法 语义分析工具:在语法制导翻译方法中,常用属性文法来说明程序设计语言语义 8.1 属性文法 属性文法(attribute grammar)是一个三元组:A=(G,V,F) 表达式文法 E→T+T| T or T T → n | true|false 在语法制导定义中,一条语义规则完成一个计算属性值的动作。digit是终结符,只使用综合属性,且其属性值由词法分析器提供,通常不要计算属性值。 继承属性 一个结点的继承属性值是由此结点的父结点和/或兄弟结点的某些属性来决定的。 语句real a1,a2,a3的分析树,采用自上而下的分析方法 8.2 语法制导翻译概论 在语法分析过程中,随着分析的步步进展,根据每个产生式所对应的语义

文档评论(0)

1亿VIP精品文档

相关文档