【编译原理】文法和文法树

 

符号,符号串,串集

表示说明
符号a,b,c语言中不可再分的最小单位
符号串α,β,γ符号组成的有穷集合(ε表示空串)
串集A,B,C顾名思义(若串都是单个字母,也可以理解为字母表

相关运算:

  1. 乘积运算(即连接运算):A={a, b}, B={c, d},则AB={ac, ad, bc, bd}
  2. 幂运算(理解为多次乘积运算)
  3. A^0 = {ε}
  4. 字母表A的闭包(A*):A中符号组成的所有串的集合,包括空串
  5. 字母表A的正闭包(A+):A中符号组成的所有串的集合,不包括空串

 

文法

▶ 相关概念:

  1. 非终结符A,终结符a,产生式A→a
  2. 非终结符集合VN,终结符集合VT
  3. 推导是从开始符号(识别符号)开始,产生一个句子
  4. 归约是从句子开始,最终达到开始符号(识别符号)
  5. 最左/最右推导称为规范推导;最左/右归约称为规范归约
  6. 句型是从开始符号S开始,每步推导出的字符串;句子是仅含终结符的句型

▶ Chomsky对文法的定义:文法G是一个四元式(VN,VT,P,S) 即(非终结符集,终结符集,规则集,开始符号)

▶ Chomsky对文法的分类:

0型文法无限制文法图灵机
1型文法上下文有关文法aB→ab线性界限自动机
2型文法上下文无关文法B→ab下推自动机
3型文法正规文法A右Aa,B右Bb(左线性)有限状态自动机

 
▶ 文法构造:常见题型是根据句子写出文法(通常写上下文无关文法)

▶ 文法的简化步骤:

  1. 删掉自身产生自身的产生式
  2. 删掉用不到的产生式
  3. 删掉整条推导路径中导不出终结符的产生式

 
 

文法二义性

▶ 语法树相关概念:

  1. 句型:在一棵语法树生长过程中的任何时刻,所有叶子节点排列起来就是一个句型
  2. 短语:一般都说是“相对于某个根节点的短语”
  3. 简单短语(直接短语):由某个根节点直接生成的短语
  4. 句柄:最左简单短语

▶ 二义性相关概念:

  1. 句子二义性:如果一个句子存在两棵(及以上)的语法树,则这个句子是二义的
  2. 文法二义性:包含二义性句子的文法,是二义文法
  3. 常考题型:判断文法二义性(如图)

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值