编译原理 第三章 part3(上下文无关文法及其语法树、二义性、自下而上、自上而下、有害规则和多余规则)

上下文无关文法及其语法树,句型分析,有害规则和多余规则

(1)上下文无关文法

1.例子:

在这里插入图片描述

(2)规范推导和规范句型

1.定义:

如果在推导的任何以部α⇒β,其中α、β是句型,都是对α中的最左(最右)非终结符进行替换,则称这种推导为最左(最右)推导

2.注意:

①最推导称为规范推导
②由规范推导所得的句型称为规范句型

3.例子:(一定要再写一次)

在这里插入图片描述
从上图中例子得出:
①最左推导是把产生式右部最左边非终结符推导换掉。
②最右推导是把产生式右部最右边非终结符推导换掉。

(3)语法树

1.作用:

直观地描述上下文无关文法的句型推导过程。
在这里插入图片描述

2.例子:

在这里插入图片描述

3.定义:(应该没用,看一下就好了)

在这里插入图片描述

(4)文法的二义性

1.定义:

       如果一个文法存在某个句子对应两棵不同的语法树,则说这个文法是二义的。二义性文法存在某个句子,它有两个不同的最左(右)推导。
       对于一个程序设计语言来说,希望它的文法是无二义的,因为希望对它的每个语句的分析是唯一的。

2.例子:

在这里插入图片描述

3.例子2(二义性文法变成无二义文法)

在这里插入图片描述

4.注意:

如果同一文法,推导过程不同,但结果是两棵相同的语法树,也是无二义的
在这里插入图片描述
(推导过程不同,但结果等价)




(5)句型的分析(概括)

1.定义:

识别输入符号串是否为语法上正确的程序的过程。(判断是否符合文法)

2.分类:(看看就好)

在这里插入图片描述

(6)自上而下的分析方法

1.定义:

       从文法的开始符号出发,反复使用文法的产生式,寻找与符号串匹配的推导。
       语法树的构造:将文法的开始符号作为语法树的,向下逐步建立语法树,使语法树的末端结点符号串正好是输入符号串。

2.例子:(感觉会考)

在这里插入图片描述

3.自上而下方法的主要问题 : (是选择产生式)

在这里插入图片描述

(7)自下而上的分析方法

1.定义:

       从输入符号串开始,逐步进行归约,直至归约到文法的开始符号
       语法树的构造:从输入符号串开始,以它作为语法树的末端结点符号串,自底向上地构造语法树

2.例子:

在这里插入图片描述

3.自下而上分析的主要问题:(是确定“可归约串”)


(8)有害规则和多余规则

1.有害规则定义: U->U,无用,且引起文法的二义

2.多余规则定义: 所有句子推导都用不到的规则

表现形式:

        不可到达:不在任何产生式的右部出现的非终结符

        不可终止:不可推导出终结符号串的非终结符



3.例子:(重要)

在这里插入图片描述
其中(2)也是不可终止


4.ε规则

定义:上下文无关文法中允许使用A->ε产生式,A->ε称为ε规则

  • 12
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值