上海交通大学:《编译原理》课程教学资源(PPT课件)第四章 语法分析

编译原理 第四章语法分析 上海交通大学 张冬茉 Email: zhang-dm(acs situ. edu.cn 2004年3月
1 编译原理 第四章 语法分析 上海交通大学 张冬茉 Email:zhang-dm@cs.sjtu.edu.cn 2004年3月

本章目的 描述程序语言的语法结构,需借助 于上下文无关文法。文法是描述程序语 言的依据,也是编译的依据。识别上下 文无关文法所生成的语言的方法是语法 分析的关键。本章的目的是研究这些方 法
2 本章目的 描述程序语言的语法结构,需借助 于上下文无关文法。文法是描述程序语 言的依据,也是编译的依据。识别上下 文无关文法所生成的语言的方法是语法 分析的关键。本章的目的是研究这些方 法

第四章语法分析 §4.1语法分析概述 词法分析器按词法规则将输入字符串识别 为单词符号流,这些单词符号便是上下文无关 文法中的终结符。 语法分析器的任务,是把由这些终结符组 成的有限列序,作为语法分析器的输入串,按 文法规则,识别它是否构成了合法的句子(程 序),并对语法分析中发现的错误,作出必要的 处理
3 第四章 语法分析 §4.1 语法分析概述 词法分析器按词法规则将输入字符串识别 为单词符号流,这些单词符号便是上下文无关 文法中的终结符。 语法分析器的任务,是把由这些终结符组 成的有限列序,作为语法分析器的输入串,按 文法规则,识别它是否构成了合法的句子(程 序),并对语法分析中发现的错误,作出必要的 处理。

语法分析器与词法分析器和语义分析 器的关系 如果语法分析器作为单独一遍,通常以分析 树的形式作为其输出,供语法分析的后续阶段 继续分析。如果语法分析与语义分析,中间代 码生成构成一遍,则每当识别一个文法结构时, 就调用相应分析程序,并生成中间代码,因此 输出为中间代码形式
4 语法分析器与词法分析器和语义分析 器的关系 如果语法分析器作为单独一遍,通常以分析 树的形式作为其输出,供语法分析的后续阶段 继续分析。如果语法分析与语义分析,中间代 码生成构成一遍,则每当识别一个文法结构时, 就调用相应分析程序,并生成中间代码,因此 输出为中间代码形式。

语法分析的方法 通常有两类,即自上而下分析方法和自下 而上分析方法,或称为自顶向下top-down)和 自底向上( bottom-up)分析方法。它们都要判断 输入串是否为一合法句子
5 语法分析的方法 通常有两类,即自上而下分析方法和自下 而上分析方法,或称为自顶向下(top-down)和 自底向上(bottom-up)分析方法。它们都要判断 一输入串是否为一合法句子。

对自上而下分析来说,能否找到从文法开始符 开始的推导序列,使得推导出的句子恰为输入 串。或者说,能否从根结点出发,向下生长出 棵语法分析树,其叶结点组成的句子恰为输 入串。显然语法分析树的每一步生长每一步推 导)都以能否与输入串匹配为准。 对自下而上分析来说,能否从输入串出发找到 个归约序列,能最终地归约为文法开始符。 或者说,能否从叶结点出发,向上归结出以文 法开始符为根结点的语法分析树,每一步的归 约,都以待处理的字符串是否已形成句柄(或最 左素短语)为准
6 •对自上而下分析来说,能否找到从文法开始符 开始的推导序列,使得推导出的句子恰为输入 串。或者说,能否从根结点出发,向下生长出 一棵语法分析树,其叶结点组成的句子恰为输 入串。显然语法分析树的每一步生长(每一步推 导)都以能否与输入串匹配为准。 •对自下而上分析来说,能否从输入串出发找到 一个归约序列,能最终地归约为文法开始符。 或者说,能否从叶结点出发,向上归结出以文 法开始符为根结点的语法分析树,每一步的归 约,都以待处理的字符串是否已形成句柄(或最 左素短语)为准。

§4,2递归下降分析方法 递归下降分析法是一种自顶向下的分 析方法,文法的每个非终结符,对应于 个递归过程。分析就是从方法开始符出发 执行一组递归过程,向下推导,直到推导 出句子。或者说从根结点出发,自上而下 为输入串寻找一个最左匹配序列,建立 棵语法分析树
7 §4.2 递归下降分析方法 递归下降分析法是一种自顶向下的分 析方法,文法的每个非终结符,对应于一 个递归过程。分析就是从方法开始符出发 执行一组递归过程,向下推导,直到推导 出句子。或者说从根结点出发,自上而下 为输入串寻找一个最左匹配序列,建立一 棵语法分析树。

试探分析法 「例41文法 S->XAy A→>ab|la 若输入串为xy时,分析过程为: (1)首先建立根结点S (2)文法关于S的产生式只有一个,所以从S生 长分析树如图4l(a)。它的第一个终结符x与输 入串待分析字符x匹配,于是下一待分析字符 为a,期待与分析树中x右的叶结点A匹配。 8
8 一、试探分析法 [例4.1] 文法 S->xAy A->ab |a 若输入串为xay时,分析过程为: (1) 首先建立根结点S。 (2) 文法关于S的产生式只有一个,所以从S生 长分析树如图4.1(a)。它的第一个终结符x与输 入串待分析字符x匹配,于是下一待分析字符 为a,期待与分析树中x右的叶结点A匹配。

(3)非终结符A有两个候选式,先选用第一个候 选式。生长分析树如图4.1(b),这时分析树第 二叶结点a恰与待分析字符a匹配 (4)输入串中下一待分析字符为y,期待与第三 叶结点b匹配。此时发觉这两个字符是不同的, 即匹配失败。问题在于在生成A的子树时选用 的是第一个候选式。 (5)于是将A的这棵子树注销,把匹配指针退回 到输入串的第二字符,也即恢复与A匹配时的 现场,即(3)之前
9 (3) 非终结符A有两个候选式,先选用第一个候 选式。生长分析树如图4.1(b),这时分析树第 二叶结点a恰与待分析字符a匹配。 (4) 输入串中下一待分析字符为y,期待与第三 叶结点b匹配。此时发觉这两个字符是不同的, 即匹配失败。问题在于在生成A的子树时选用 的是第一个候选式。 (5) 于是将A的这棵子树注销,把匹配指针退回 到输入串的第二字符,也即恢复与A匹配时的 现场,即(3)之前。

(6)A选用第二候选式,生长分析树如图 41(c),这时第二叶结点a与输入串第二字 符匹配。 (⑦)输入串下一待分析字符指向y,分析树 指向a右叶结点y。两者恰匹配,所以,分 析树41(c)即为输入串xay语法分析树。 10
10 (6) A选用第二候选式,生长分析树如图 4.1(c),这时第二叶结点a与输入串第二字 符匹配。 (7) 输入串下一待分析字符指向y,分析树 指向a右叶结点y。两者恰匹配,所以,分 析树4.1(c)即为输入串xay语法分析树。
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 上海交通大学:《编译原理》课程教学资源(PPT课件)第六章 运行时存储空间管理.ppt
- 上海交通大学:《编译原理》课程教学资源(PPT课件)第八章 代码生成.ppt
- 上海交通大学:《编译原理》课程教学资源(PPT课件)第五章 语法制导翻译和中间代码生成.ppt
- 上海交通大学:《编译原理》课程教学资源(PPT课件)第二章 文法和语言.ppt
- 上海交通大学:《编译原理》课程教学资源(PPT课件)第三章 词法分析.ppt
- 上海交通大学:《编译原理》课程教学资源(PPT课件)第七章 代码优化.ppt
- 上海交通大学:《编译原理》课程教学资源(PPT课件)第一章 引论(张冬茉).ppt
- 《计算机网络技术》 第四章 网络互连.ppt
- 《计算机网络技术》 第六章 计算机网络的安全.ppt
- 《计算机网络技术》 第五章 端到端协议.ppt
- 《计算机网络技术》 第二章 直连的网络.ppt
- 《计算机网络技术》 第三章 分组交换.ppt
- 《计算机网络技术》 第一章 网络知识分类.ppt
- 南通市科委培训中心:全国计算机等级考试(一级B)培训资料.pdf
- 北京师范大学《数据结构——C语言描述》教学课件:第三章 栈和队列.ppt
- 北京师范大学《数据结构——C语言描述》教学课件:课程章节主要内容及学时分配.doc
- 北京师范大学《数据结构——C语言描述》教学课件:第二章 线性表.ppt
- 北京师范大学《数据结构——C语言描述》教学课件:第七章 图.ppt
- 北京师范大学《数据结构——C语言描述》教学课件:第五章 数组与广义表.ppt
- 北京师范大学《数据结构——C语言描述》教学课件:第六章 树和二叉树.ppt
- 《Photoshop图形图像处理案例教程》 第一章 常识与基本概念.ppt
- 《Photoshop图形图像处理案例教程》 第七章 绘画工具之三.ppt
- 《Photoshop图形图像处理案例教程》 第三章 抠图.ppt
- 《Photoshop图形图像处理案例教程》 第九章 图层使用之二.ppt
- 《Photoshop图形图像处理案例教程》 第二章 基本操作.ppt
- 《Photoshop图形图像处理案例教程》 第五章 绘画工具之一.ppt
- 《Photoshop图形图像处理案例教程》 第八章 图层使用之一.ppt
- 《Photoshop图形图像处理案例教程》 第六章 绘画工具之二.ppt
- 《Photoshop图形图像处理案例教程》 第十一章 文本的输入编辑与美化.ppt
- 《Photoshop图形图像处理案例教程》 第十七章 帮助.ppt
- 《Photoshop图形图像处理案例教程》 第十三章 图像色调和色彩调整.ppt
- 《Photoshop图形图像处理案例教程》 第十二章 使用通道.ppt
- 《Photoshop图形图像处理案例教程》 第十五章 图像处理自动化.ppt
- 《Photoshop图形图像处理案例教程》 第十六章 图像的输入与输出.ppt
- 《Photoshop图形图像处理案例教程》 第十四章 使用滤镜.ppt
- 《Photoshop图形图像处理案例教程》 第十章 路径与形状.ppt
- 《Photoshop图形图像处理案例教程》 第四章 图像基本编辑命令.ppt
- 《UG NX 基础教程》 第一章 UGNX入门知识.ppt
- 《UG NX 基础教程》 第二章 工作环境与参数设置.ppt
- 《UG NX 基础教程》 第三章 草图.ppt