第六章语义分析与目标代码生成 6.1概况 62说明部分的翻译 63目标代码的生成 64源程序的内部中间表示
6.1 概况 6.2 说明部分的翻译 6.3 目标代码的生成 6.4 源程序的内部中间表示 第六章 语义分析与目标代码生成
第六章语义分析与目标代码生成 6.1概况 6.1.1语义分析的概念 1.程序的含义 2.语义分析的功能
6.1 概况 6.1.1 语义分析的概念 1. 程序的含义 2. 语义分析的功能 第六章 语义分析与目标代码生成
第六章语义分析与目标代码生成 6.1概况 6.1.1语义分析的概念 1.程序的含义 程序的含义涉及两方面,即数据结构的 2语义分析的功能含义与控制结构的含义。 数据结构的含义,主要指与标识符相关联 的数据对象,也即量的含义。量涉及类 型与值,值在运行时刻确定,而类型则 由程序中的说明部分来规定 控制结构的含义,是由语言定义的 f(〈表达式〉)〈语句〉else〈语句〉
6.1 概况 6.1.1 语义分析的概念 1. 程序的含义 2. 语义分析的功能 第六章 语义分析与目标代码生成 程序的含义涉及两方面,即数据结构的 含义与控制结构的含义。 数据结构的含义, 主要指与标识符相关联 的数据对象,也即量的含义。量涉及类 型与值,值在运行时刻确定,而类型则 由程序中的说明部分来规定。 控制结构的含义, 是由语言定义的。 if(〈表达式〉) 〈语句〉 else 〈语句〉
6.1概况 6.1.1语义分析的概念 1.语义分析的含义 2.语义分析的功能 1)确定类型:确定标识符所关联数据对象的数据类型。 2)类型检査:按照语言的类型规则,检查运算的合法性与运算分量类 型的一致性(相容性)。 3)识别含义:根据程序设计语言的语义定义(形式或非形式的),确认 程序中各构造成分组合到一起的含义,并作相应的语义处理。对可执行 语句生成中间代码或目标代码 4)其他一些静态语义检查:语义分析时可进行一些静态语义检查, 例如控制流检查
6.1 概况 6.1.1 语义分析的概念 1. 语义分析的含义 2. 语义分析的功能 1)确定类型:确定标识符所关联数据对象的数据类型。 2)类型检查:按照语言的类型规则,检查运算的合法性与运算分量类 型的一致性(相容性)。 3)识别含义:根据程序设计语言的语义定义(形式或非形式的),确认 程序中各构造成分组合到一起的含义,并作相应的语义处理。对可执行 语句生成中间代码或目标代码。 4)其他一些静态语义检查:语义分析时可进行一些静态语义检查, 例如控制流检查
第六章语义分析与目标代码生成 6.1概况 6.1.1语义分析的概念 6.1.2属性文法 属性文法的引进 语法制导定义 三、翻译方案
6.1 概况 6.1.1 语义分析的概念 6.1.2 属性文法 一、属性文法的引进 二、语法制导定义 三、翻译方案 第六章 语义分析与目标代码生成
第六章语义分析与目标代码生成 6.1概况 6.1.1语义分析的概念 6.1.2属性文法 属性文法的引进 1属性 2属性文法 3语法制导定义 4翻译方案 5语法制导的翻译
6.1 概况 6.1.1 语义分析的概念 6.1.2 属性文法 一、属性文法的引进 1.属性 2.属性文法 3.语法制导定义 4.翻译方案 5.语法制导的翻译 第六章 语义分析与目标代码生成
第六章语义分析与目标代码生成 6.1概况 6.1.1语义分析的概念 6.1.2属性文法 属性文法的引进 1属性:想表达或想涉及的任何内容。如类型、数值、字符串、 2属性文法 存储地址与代码等。 3语法制导定义 4翻译方案 5语法制导的翻译
6.1 概况 6.1.1 语义分析的概念 6.1.2 属性文法 一、属性文法的引进 1.属性:想表达或想涉及的任何内容。如类型、数值、字符串、 2.属性文法 存储地址与代码等。 3.语法制导定义 4.翻译方案 5.语法制导的翻译 第六章 语义分析与目标代码生成
第六章语义分析与目标代码生成 6.1概况 6.1.1语义分析的概念 6.1.2属性文法 属性文法的引进 1属性 对于某个压缩了的上下文无关文法,把每 2属性文法个文法符号联系于一组属性,且让该文法的重 3语法制导定义写规则附加以语义规则时,则称该上下文无关 4翻译方案 文法为属性文法。 5语法制导的翻译
6.1 概况 6.1.1 语义分析的概念 6.1.2 属性文法 一、属性文法的引进 1.属性 2.属性文法 3.语法制导定义 4.翻译方案 5.语法制导的翻译 第六章 语义分析与目标代码生成 对于某个压缩了的上下文无关文法,把每 个文法符号联系于一组属性,且让该文法的重 写规则附加以语义规则时,则称该上下文无关 文法为属性文法
第六章语义分析与目标代码生成 6.1概况 6.1.1语义分析的概念 6.1.2属性文法 属性文法的引进 1属性 2属性文法 是较抽象的翻译说明,它隐蔽了一些实现 3语法制导定义细节,因此在书写语法制导定义时,无需指明 4,翻译方案翻译时语义规则的计算次序 5语法制导的翻译
6.1 概况 6.1.1 语义分析的概念 6.1.2 属性文法 一、属性文法的引进 1.属性 2.属性文法 3.语法制导定义 4.翻译方案 5.语法制导的翻译 第六章 语义分析与目标代码生成 是较抽象的翻译说明,它隐蔽了一些实现 细节,因此在书写语法制导定义时,无需指明 翻译时语义规则的计算次序
第六章语义分析与目标代码生成 6.1概况 6.1.1语义分析的概念 6.1.2属性文法 属性文法的引进 1属性 2属性文法 如果语法制导定义中指明了语义规则的计 3语法制导定义算次序,陈述了一些实现细节,将称其为翻译 4,翻译方案 方案。 5语法制导的翻译
6.1 概况 6.1.1 语义分析的概念 6.1.2 属性文法 一、属性文法的引进 1.属性 2.属性文法 3.语法制导定义 4.翻译方案 5.语法制导的翻译 第六章 语义分析与目标代码生成 如果语法制导定义中指明了语义规则的计 算次序,陈述了一些实现细节,将称其为翻译 方案