编译原理---语法树(推导树)

软件工程学生应该掌握语法树的构造方法

知识如下:

语法树推导树)是用来描述上下文无关文法(2型文法)的句型推导的直观工具。
文法形如:G=(VN,VT,P,S)
其中P是规则(产生式),形如:α->β
并且V=VN∪VT
这棵树满足4个条件

  1. 树的每个节点都有一个标记,此标记是V的一个符号。(意为:每个节点都是一个非终结符或者一个终结符)
  2. 根的标记是S。(树总是从S识别符开始的)
  3. 若一个结点n的直接子孙,并且有标记A,则A肯定在VN中。(孩子结点是对非终结符进行替换产生的)
  4. 如果结点的直接子孙从左到右的次序是结点n1,n2,n3……nk,其标记分别为A1,A2……Ak,那么A->A1 A2……Ak一定是P中的一个产生式。(产生式的左部,就是父节点右部,就是孩子结点)

例题:
在这里插入图片描述

首先,S(开始符)推导出对应的句子
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
存在某个文法,他的一个句型的语法树是唯一
如果同一个句型有两个不同的语法树构造,说明可以有两种语法去理解他,说明该文法有二义性,是会造成歧义的。所以我们要求我们的语法能够进行编译的语法必须是无二义性的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值