属性文法和语法制导翻译
4.1 语义分析概述语义分析概述 4.1 语义分析概述语义分析概述 4.1 语义分析概述语义分析概述 4.1 语义分析概述语义分析概述 注意语义栈的功能。朱世松 计算机学院计算机学院 2* 第六章 属性文法和语法制导翻译 n属性 属性常用来描述事物或人的特征。语义分析——面向语法的定义。
属性文法和语法制导翻译Tag内容描述:<p>1、4.1 语义分析概述语义分析概述 4.1 语义分析概述语义分析概述 4.1 语义分析概述语义分析概述 4.1 语义分析概述语义分析概述 注意语义栈的功能:完成语义动作后,保存语注意语义栈的功能:完成语义动作后,保存语 义值义值 1. 状态栈、符号栈和状态栈、符号栈和 语义栈三者同步变化语义栈三者同步变化 2. 在用某一规则进在用某一规则进 行行归约,栈顶保存归约,栈顶保存 文法符号文法符号 之后之后 ,调,调 用相应语义子程序用相应语义子程序 完成语义动作,将完成语义动作,将 改变的改变的 语义值语义值 保存保存 在语义栈中在语义栈中。</p><p>2、编译原理(第三版) 陈火旺等编著 (20122012年年9 9月月-12-12月)月) 主讲:朱世松主讲:朱世松 计算机学院计算机学院 2* 第六章 属性文法和语法制导翻译 n属性 属性常用来描述事物或人的特征。如 :人的姓名,性别等,商品的颜色、重量 、单位等。 3* 6.1 属性文法 n属性文法(也称属性翻译文法) Knuth在1968年提出 在上下文无关文法的基础上,为每个文法 符号(终结符或非终结符)配备若干相关 的“值”(称为属性)。 n属性代表与文法符号相关信息,如类型、 值、代码序列、符号表内容等 n属性可以进行计算和传递 n语义规则:对于文。</p><p>3、属性文法和语法制导翻译,授课:胡静,属性文法,属性文法,虽然形式语义学的研究已经取得了许多重大进展,但目前在实际应用中比较流行的语义描述和语义处理的方法主要还是属性文法和语法制导翻译。 本章研究内容: 上下文无关文法所产生的语言的翻译。 把属性附加到代表语法结构的文法符号上,可以将语义信息和程序设计语言的结构联系起来。 属性的值是用与文法产生式相关联的“语义规则”来计算的。 涉及的概念 语法制导定义:关于语言翻译的高层次规格说明,隐蔽了具体实现细节,不显式的说明翻译发生的顺序(属性文法) 翻译模式:指明了语。</p><p>4、属性文法和语法制导翻译,授课:胡静,语义分析面向语法的定义,所处位置,分析技术,LL分析方法 计算最左推导 自顶向下的构造推导 LL的分析表指出要对最左边的非终结符进行扩展时,所选的产生式。 LR分析方法 计算最右推导 自底向上的构造推导 使用LR的状态集合和符号栈 LR分析表指出针对每一个状态,采用何种动作(移进/归约),并且下一个转入的状态是什么。 我们可以使用这些技术来构造 AST,AST 复习,推导:使用的产生式的序列 S E + S 1 + S 1 + E 1 + 2 分析树:描述推导的图 并不能表示产生式使用的顺序 抽象语法树 (AST):从分析树中去。</p><p>5、第六章 属性文法和语法制导翻译,第六章 属性文法和语法制导翻译,从本章开始,我们介绍有关语义分析及翻译的问题。其处理的方法主要是属性文法和语法制导翻译方法。 本章中,我们将首先介绍属性文法的基本概念,然后介绍基于属性文法的处理方法,讨论如何自上而下分析和自下而上分析中实现属性计算。 本章重点掌握: 6.1 属性文法 6.2 基于属性文法的处理方法 6.3 S属性文法的自下而上计算 6.4 L属性文法和自顶向下翻译。,第六章 属性文法和语法制导翻译,6.1 属性文法 属性文法是在上下文无关文法的基础上为每个文法符号(终结符或非终结符。</p><p>6、第六章 属性文法和语法制导翻译,内容,属性文法 基于属性文法的处理方法 S-属性文法的自下而上计算 L-属性文法和自顶向下翻译 自下而上计算继承属性,第六章 属性文法和语法制导翻译,语义:一组规则,用它可以定义一个程序的意义。 描述方法: 自然语言描述:隐藏错误、二义性和不完整性 形式描述: 操作语义(PL/1) 指称语义(ADA) 代数语义(PASCAL) 属性文法,语义分析的任务,语义检查 例 类型、运算、维数、越界 语义处理 例 变量的存储分配 例 表达式的求值 例 语句的翻译(中间代码的生成) 问题 如何根据被识别出的语法单位进行语义处理?,。</p>